package org.larz.dom3.dm.parser.antlr.internal; 

import org.eclipse.xtext.*;
import org.eclipse.xtext.parser.*;
import org.eclipse.xtext.parser.impl.*;
import org.eclipse.emf.ecore.util.EcoreUtil;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.xtext.parser.antlr.AbstractInternalAntlrParser;
import org.eclipse.xtext.parser.antlr.XtextTokenStream;
import org.eclipse.xtext.parser.antlr.XtextTokenStream.HiddenTokens;
import org.eclipse.xtext.parser.antlr.AntlrDatatypeRuleToken;
import org.larz.dom3.dm.services.DmGrammarAccess;



import org.antlr.runtime.*;
import java.util.Stack;
import java.util.List;
import java.util.ArrayList;

@SuppressWarnings("all")
public class InternalDmParser extends AbstractInternalAntlrParser {
    public static final String[] tokenNames = new String[] {
        "<invalid>", "<EOR>", "<DOWN>", "<UP>", "RULE_STRING", "RULE_INT", "RULE_FREE_FORM_COMMENT", "RULE_SL_COMMENT", "RULE_ML_COMMENT", "RULE_WS", "'#modname'", "'#description'", "'#icon'", "'#version'", "'#domversion'", "'#end'", "'#poppergold'", "'#resourcemult'", "'#supplymult'", "'#unresthalfinc'", "'#unresthalfres'", "'#eventisrare'", "'#turmoilincome'", "'#turmoilevents'", "'#deathincome'", "'#deathsupply'", "'#deathdeath'", "'#slothincome'", "'#slothresources'", "'#coldincome'", "'#coldsupply'", "'#misfortune'", "'#luckevents'", "'#researchscale'", "'#selectarmor'", "'#newarmor'", "'#name'", "'#type'", "'#prot'", "'#def'", "'#enc'", "'#rcost'", "'#selectweapon'", "'#newweapon'", "'#dmg'", "'#nratt'", "'#att'", "'#len'", "'#range'", "'#ammo'", "'#sound'", "'#aoe'", "'#secondaryeffect'", "'#secondaryeffectalways'", "'#explspr'", "'#flyspr'", "'#twohanded'", "'#armorpiercing'", "'#armornegating'", "'#magic'", "'#dt_normal'", "'#dt_stun'", "'#dt_paralyze'", "'#dt_poison'", "'#dt_cap'", "'#dt_demon'", "'#dt_demononly'", "'#dt_holy'", "'#dt_magic'", "'#dt_small'", "'#dt_large'", "'#dt_constructonly'", "'#dt_raise'", "'#mind'", "'#cold'", "'#fire'", "'#shock'", "'#poison'", "'#bonus'", "'#charge'", "'#flail'", "'#nostr'", "'#nostrength'", "'#mrnegates'", "'#mrnegateseasily'", "'#selectmonster'", "'#newmonster'", "'#spr1'", "'#spr2'", "'#descr'", "'#speciallook'", "'#ap'", "'#mapmove'", "'#hp'", "'#size'", "'#ressize'", "'#str'", "'#prec'", "'#mr'", "'#mor'", "'#gcost'", "'#pathcost'", "'#startdom'", "'#eyes'", "'#copystats'", "'#copyspr'", "'#restrictedgod'", "'#shatteredsoul'", "'#coldres'", "'#coldresist'", "'#fireres'", "'#fireresist'", "'#poisonres'", "'#shockres'", "'#darkvision'", "'#seduce'", "'#succubus'", "'#beckon'", "'#startage'", "'#maxage'", "'#older'", "'#healer'", "'#startaff'", "'#supplybonus'", "'#uwdamage'", "'#homesick'", "'#coldpower'", "'#firepower'", "'#stormpower'", "'#darkpower'", "'#springpower'", "'#summerpower'", "'#fallpower'", "'#winterpower'", "'#ambidextrous'", "'#banefireshield'", "'#berserk'", "'#standard'", "'#animalawe'", "'#awe'", "'#fear'", "'#regeneration'", "'#reinvigoration'", "'#fireshield'", "'#iceprot'", "'#poisoncloud'", "'#diseasecloud'", "'#bloodvengeance'", "'#castledef'", "'#siegebonus'", "'#patrolbonus'", "'#pillagebonus'", "'#researchbonus'", "'#forgebonus'", "'#douse'", "'#nobadevents'", "'#incunrest'", "'#spreaddom'", "'#leper'", "'#popkill'", "'#heretic'", "'#itemslots'", "'#nametype'", "'#magicskill'", "'#custommagic'", "'#magicboost'", "'#gemprod'", "'#clear'", "'#clearweapons'", "'#cleararmor'", "'#clearmagic'", "'#clearspec'", "'#female'", "'#mounted'", "'#holy'", "'#animal'", "'#undead'", "'#demon'", "'#magicbeing'", "'#stonebeing'", "'#inanimate'", "'#coldblood'", "'#coldblooded'", "'#immortal'", "'#blind'", "'#unique'", "'#immobile'", "'#aquatic'", "'#amphibian'", "'#pooramphibian'", "'#flying'", "'#stormimmune'", "'#sailing'", "'#forestsurvival'", "'#mountainsurvival'", "'#swampsurvival'", "'#wastesurvival'", "'#illusion'", "'#spy'", "'#assassin'", "'#heal'", "'#noheal'", "'#neednoteat'", "'#ethereal'", "'#trample'", "'#entangle'", "'#eyeloss'", "'#horrormark'", "'#poisonarmor'", "'#inquisitor'", "'#noitem'", "'#drainimmune'", "'#noleader'", "'#poorleader'", "'#okleader'", "'#goodleader'", "'#expertleader'", "'#superiorleader'", "'#nomagicleader'", "'#poormagicleader'", "'#okmagicleader'", "'#goodmagicleader'", "'#expertmagicleader'", "'#superiormagicleader'", "'#noundeadleader'", "'#poorundeadleader'", "'#okundeadleader'", "'#goodundeadleader'", "'#expertundeadleader'", "'#superiorundeadleader'", "'#weapon'", "'#armor'", "'#onebattlespell'", "'#firstshape'", "'#secondshape'", "'#secondtmpshape'", "'#shapechange'", "'#landshape'", "'#watershape'", "'#forestshape'", "'#plainshape'", "'#domsummon'", "'#domsummon2'", "'#domsummon20'", "'#makemonster1'", "'#makemonster2'", "'#makemonster3'", "'#makemonster4'", "'#makemonster5'", "'#summon1'", "'#summon5'", "'#stealthy'", "'#heat'", "'#selectspell'", "'#newspell'", "'#school'", "'#researchlevel'", "'#damage'", "'#effect'", "'#fatiguecost'", "'#flightspr'", "'#nreff'", "'#precision'", "'#spec'", "'#restricted'", "'#path'", "'#pathlevel'", "'#copyspell'", "'#nextspell'", "'#selectitem'", "'#newitem'", "'#constlevel'", "'#mainpath'", "'#mainlevel'", "'#secondarypath'", "'#secondarylevel'", "'#selectnametype'", "'#addname'", "'#selectsite'", "'#newsite'", "'#level'", "'#rarity'", "'#loc'", "'#homemon'", "'#homecom'", "'#mon'", "'#com'", "'#gold'", "'#res'", "'#incscale'", "'#decscale'", "'#curse'", "'#disease'", "'#holyfire'", "'#holypower'", "'#conjcost'", "'#altcost'", "'#evocost'", "'#constcost'", "'#enchcost'", "'#thaucost'", "'#bloodcost'", "'#gems'", "'#lab'", "'#selectnation'", "'#indepflag'", "'#epithet'", "'#summary'", "'#brief'", "'#flag'", "'#mapbackground'", "'#startsite'", "'#era'", "'#labcost'", "'#templecost'", "'#templepic'", "'#startunitnbrs1'", "'#startunitnbrs2'", "'#hero1'", "'#hero2'", "'#hero3'", "'#hero4'", "'#hero5'", "'#hero6'", "'#multihero1'", "'#multihero2'", "'#defmult1'", "'#defmult1b'", "'#defmult2'", "'#defmult2b'", "'#idealcold'", "'#castleprod'", "'#domkill'", "'#domunrest'", "'#startfort'", "'#defaultfort'", "'#farmfort'", "'#mountainfort'", "'#forestfort'", "'#swampfort'", "'#uwfort'", "'#deepfort'", "'#clearnation'", "'#clearrec'", "'#clearsites'", "'#uwnation'", "'#bloodnation'", "'#nopreach'", "'#dyingdom'", "'#sacrificedom'", "'#nodeathsupply'", "'#autoundead'", "'#zombiereanim'", "'#horsereanim'", "'#wightreanim'", "'#manikinreanim'", "'#tombwyrmreanim'", "'#startcom'", "'#startscout'", "'#startunittype1'", "'#startunittype2'", "'#addrecunit'", "'#addreccom'", "'#uwunit1'", "'#uwunit2'", "'#uwunit3'", "'#uwunit4'", "'#uwunit5'", "'#uwcom1'", "'#uwcom2'", "'#uwcom3'", "'#uwcom4'", "'#uwcom5'", "'#defcom1'", "'#defcom2'", "'#defunit1'", "'#defunit1b'", "'#defunit2'", "'#defunit2b'", "'#color'", "'.'"
    };
    public static final int T__93=93;
    public static final int T__94=94;
    public static final int T__91=91;
    public static final int T__92=92;
    public static final int T__90=90;
    public static final int T__99=99;
    public static final int T__98=98;
    public static final int T__97=97;
    public static final int T__96=96;
    public static final int T__95=95;
    public static final int T__80=80;
    public static final int T__81=81;
    public static final int T__82=82;
    public static final int T__83=83;
    public static final int T__85=85;
    public static final int T__84=84;
    public static final int T__87=87;
    public static final int T__86=86;
    public static final int T__89=89;
    public static final int T__88=88;
    public static final int RULE_ML_COMMENT=8;
    public static final int T__71=71;
    public static final int T__72=72;
    public static final int T__70=70;
    public static final int T__76=76;
    public static final int T__75=75;
    public static final int T__74=74;
    public static final int T__73=73;
    public static final int T__79=79;
    public static final int T__78=78;
    public static final int T__77=77;
    public static final int RULE_SL_COMMENT=7;
    public static final int T__29=29;
    public static final int T__28=28;
    public static final int T__27=27;
    public static final int T__26=26;
    public static final int T__25=25;
    public static final int T__377=377;
    public static final int T__24=24;
    public static final int T__376=376;
    public static final int T__23=23;
    public static final int T__375=375;
    public static final int T__22=22;
    public static final int T__374=374;
    public static final int T__21=21;
    public static final int T__373=373;
    public static final int T__20=20;
    public static final int T__372=372;
    public static final int T__371=371;
    public static final int T__370=370;
    public static final int T__369=369;
    public static final int T__367=367;
    public static final int T__368=368;
    public static final int T__19=19;
    public static final int T__380=380;
    public static final int T__16=16;
    public static final int T__15=15;
    public static final int T__18=18;
    public static final int T__17=17;
    public static final int T__12=12;
    public static final int T__11=11;
    public static final int T__14=14;
    public static final int T__13=13;
    public static final int T__10=10;
    public static final int T__378=378;
    public static final int T__379=379;
    public static final int T__200=200;
    public static final int T__201=201;
    public static final int RULE_FREE_FORM_COMMENT=6;
    public static final int T__68=68;
    public static final int T__332=332;
    public static final int T__69=69;
    public static final int T__333=333;
    public static final int T__66=66;
    public static final int T__330=330;
    public static final int T__67=67;
    public static final int T__331=331;
    public static final int T__64=64;
    public static final int T__65=65;
    public static final int T__62=62;
    public static final int T__63=63;
    public static final int T__61=61;
    public static final int T__60=60;
    public static final int T__329=329;
    public static final int T__328=328;
    public static final int T__327=327;
    public static final int T__326=326;
    public static final int T__325=325;
    public static final int T__324=324;
    public static final int T__323=323;
    public static final int T__55=55;
    public static final int T__341=341;
    public static final int T__56=56;
    public static final int T__342=342;
    public static final int T__57=57;
    public static final int T__343=343;
    public static final int T__58=58;
    public static final int T__344=344;
    public static final int T__51=51;
    public static final int T__52=52;
    public static final int T__53=53;
    public static final int T__54=54;
    public static final int T__340=340;
    public static final int T__59=59;
    public static final int T__339=339;
    public static final int T__338=338;
    public static final int T__50=50;
    public static final int T__335=335;
    public static final int T__334=334;
    public static final int T__337=337;
    public static final int T__336=336;
    public static final int T__42=42;
    public static final int T__350=350;
    public static final int T__43=43;
    public static final int T__351=351;
    public static final int T__40=40;
    public static final int T__41=41;
    public static final int T__46=46;
    public static final int T__354=354;
    public static final int T__47=47;
    public static final int T__355=355;
    public static final int T__44=44;
    public static final int T__352=352;
    public static final int T__45=45;
    public static final int T__353=353;
    public static final int T__48=48;
    public static final int T__49=49;
    public static final int T__348=348;
    public static final int T__347=347;
    public static final int T__346=346;
    public static final int T__345=345;
    public static final int T__349=349;
    public static final int T__30=30;
    public static final int T__360=360;
    public static final int T__31=31;
    public static final int T__361=361;
    public static final int T__32=32;
    public static final int T__362=362;
    public static final int T__33=33;
    public static final int T__363=363;
    public static final int T__34=34;
    public static final int T__364=364;
    public static final int T__35=35;
    public static final int T__365=365;
    public static final int T__36=36;
    public static final int T__366=366;
    public static final int T__37=37;
    public static final int T__38=38;
    public static final int T__39=39;
    public static final int T__357=357;
    public static final int T__356=356;
    public static final int T__359=359;
    public static final int T__358=358;
    public static final int T__159=159;
    public static final int T__158=158;
    public static final int T__259=259;
    public static final int T__258=258;
    public static final int T__257=257;
    public static final int T__262=262;
    public static final int T__160=160;
    public static final int T__263=263;
    public static final int T__260=260;
    public static final int T__261=261;
    public static final int T__266=266;
    public static final int T__267=267;
    public static final int T__264=264;
    public static final int T__265=265;
    public static final int T__167=167;
    public static final int T__168=168;
    public static final int EOF=-1;
    public static final int T__165=165;
    public static final int T__166=166;
    public static final int T__163=163;
    public static final int T__300=300;
    public static final int T__164=164;
    public static final int T__161=161;
    public static final int T__162=162;
    public static final int T__148=148;
    public static final int T__147=147;
    public static final int T__149=149;
    public static final int T__247=247;
    public static final int T__246=246;
    public static final int T__249=249;
    public static final int T__248=248;
    public static final int T__250=250;
    public static final int T__251=251;
    public static final int T__252=252;
    public static final int T__253=253;
    public static final int T__254=254;
    public static final int T__255=255;
    public static final int T__256=256;
    public static final int T__154=154;
    public static final int T__155=155;
    public static final int T__156=156;
    public static final int T__157=157;
    public static final int T__150=150;
    public static final int T__151=151;
    public static final int T__152=152;
    public static final int T__153=153;
    public static final int T__139=139;
    public static final int T__318=318;
    public static final int T__138=138;
    public static final int T__319=319;
    public static final int T__137=137;
    public static final int T__316=316;
    public static final int T__136=136;
    public static final int T__317=317;
    public static final int T__314=314;
    public static final int T__315=315;
    public static final int T__312=312;
    public static final int T__313=313;
    public static final int T__279=279;
    public static final int T__288=288;
    public static final int T__289=289;
    public static final int T__286=286;
    public static final int T__287=287;
    public static final int T__284=284;
    public static final int T__285=285;
    public static final int T__282=282;
    public static final int T__283=283;
    public static final int T__141=141;
    public static final int T__280=280;
    public static final int T__322=322;
    public static final int T__142=142;
    public static final int T__281=281;
    public static final int T__321=321;
    public static final int T__320=320;
    public static final int T__140=140;
    public static final int T__145=145;
    public static final int T__146=146;
    public static final int T__143=143;
    public static final int T__144=144;
    public static final int T__126=126;
    public static final int T__305=305;
    public static final int T__125=125;
    public static final int T__306=306;
    public static final int T__128=128;
    public static final int T__307=307;
    public static final int T__127=127;
    public static final int T__308=308;
    public static final int RULE_STRING=4;
    public static final int T__301=301;
    public static final int T__129=129;
    public static final int T__302=302;
    public static final int T__303=303;
    public static final int T__304=304;
    public static final int T__269=269;
    public static final int T__309=309;
    public static final int T__268=268;
    public static final int T__275=275;
    public static final int T__276=276;
    public static final int T__277=277;
    public static final int T__278=278;
    public static final int T__271=271;
    public static final int T__272=272;
    public static final int T__273=273;
    public static final int T__274=274;
    public static final int T__130=130;
    public static final int T__311=311;
    public static final int T__131=131;
    public static final int T__270=270;
    public static final int T__310=310;
    public static final int T__132=132;
    public static final int T__133=133;
    public static final int T__134=134;
    public static final int T__135=135;
    public static final int T__215=215;
    public static final int T__216=216;
    public static final int T__213=213;
    public static final int T__214=214;
    public static final int T__219=219;
    public static final int T__217=217;
    public static final int T__218=218;
    public static final int T__118=118;
    public static final int T__119=119;
    public static final int T__116=116;
    public static final int T__117=117;
    public static final int T__114=114;
    public static final int T__115=115;
    public static final int T__124=124;
    public static final int T__123=123;
    public static final int T__122=122;
    public static final int T__121=121;
    public static final int T__120=120;
    public static final int T__223=223;
    public static final int T__222=222;
    public static final int T__221=221;
    public static final int T__220=220;
    public static final int T__202=202;
    public static final int T__203=203;
    public static final int T__204=204;
    public static final int T__205=205;
    public static final int T__206=206;
    public static final int T__207=207;
    public static final int T__208=208;
    public static final int T__209=209;
    public static final int T__107=107;
    public static final int T__108=108;
    public static final int T__109=109;
    public static final int T__103=103;
    public static final int T__104=104;
    public static final int T__105=105;
    public static final int T__106=106;
    public static final int T__111=111;
    public static final int T__110=110;
    public static final int T__113=113;
    public static final int T__112=112;
    public static final int T__210=210;
    public static final int T__212=212;
    public static final int T__211=211;
    public static final int T__239=239;
    public static final int T__237=237;
    public static final int T__238=238;
    public static final int T__235=235;
    public static final int T__236=236;
    public static final int T__102=102;
    public static final int T__101=101;
    public static final int T__100=100;
    public static final int T__245=245;
    public static final int T__244=244;
    public static final int T__243=243;
    public static final int T__242=242;
    public static final int T__241=241;
    public static final int T__240=240;
    public static final int T__228=228;
    public static final int T__229=229;
    public static final int T__224=224;
    public static final int T__225=225;
    public static final int T__226=226;
    public static final int T__227=227;
    public static final int T__232=232;
    public static final int T__231=231;
    public static final int T__234=234;
    public static final int T__233=233;
    public static final int T__230=230;
    public static final int T__199=199;
    public static final int T__198=198;
    public static final int T__197=197;
    public static final int T__292=292;
    public static final int T__196=196;
    public static final int T__291=291;
    public static final int T__195=195;
    public static final int T__290=290;
    public static final int T__194=194;
    public static final int T__193=193;
    public static final int T__296=296;
    public static final int T__192=192;
    public static final int T__295=295;
    public static final int T__191=191;
    public static final int T__294=294;
    public static final int T__190=190;
    public static final int T__293=293;
    public static final int T__299=299;
    public static final int T__298=298;
    public static final int T__297=297;
    public static final int RULE_INT=5;
    public static final int T__184=184;
    public static final int T__183=183;
    public static final int T__186=186;
    public static final int T__185=185;
    public static final int T__188=188;
    public static final int T__187=187;
    public static final int T__189=189;
    public static final int T__180=180;
    public static final int T__182=182;
    public static final int T__181=181;
    public static final int T__175=175;
    public static final int T__174=174;
    public static final int T__173=173;
    public static final int T__172=172;
    public static final int T__179=179;
    public static final int T__178=178;
    public static final int T__177=177;
    public static final int T__176=176;
    public static final int T__171=171;
    public static final int T__170=170;
    public static final int RULE_WS=9;
    public static final int T__169=169;

    // delegates
    // delegators


        public InternalDmParser(TokenStream input) {
            this(input, new RecognizerSharedState());
        }
        public InternalDmParser(TokenStream input, RecognizerSharedState state) {
            super(input, state);
             
        }
        

    public String[] getTokenNames() { return InternalDmParser.tokenNames; }
    public String getGrammarFileName() { return "../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g"; }



     	private DmGrammarAccess grammarAccess;
     	
        public InternalDmParser(TokenStream input, DmGrammarAccess grammarAccess) {
            this(input);
            this.grammarAccess = grammarAccess;
            registerRules(grammarAccess.getGrammar());
        }
        
        @Override
        protected String getFirstRuleName() {
        	return "Dom3Mod";	
       	}
       	
       	@Override
       	protected DmGrammarAccess getGrammarAccess() {
       		return grammarAccess;
       	}



    // $ANTLR start "entryRuleDom3Mod"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:67:1: entryRuleDom3Mod returns [EObject current=null] : iv_ruleDom3Mod= ruleDom3Mod EOF ;
    public final EObject entryRuleDom3Mod() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleDom3Mod = null;


        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:68:2: (iv_ruleDom3Mod= ruleDom3Mod EOF )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:69:2: iv_ruleDom3Mod= ruleDom3Mod EOF
            {
             newCompositeNode(grammarAccess.getDom3ModRule()); 
            pushFollow(FOLLOW_ruleDom3Mod_in_entryRuleDom3Mod75);
            iv_ruleDom3Mod=ruleDom3Mod();

            state._fsp--;

             current =iv_ruleDom3Mod; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleDom3Mod85); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleDom3Mod"


    // $ANTLR start "ruleDom3Mod"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:76:1: ruleDom3Mod returns [EObject current=null] : ( ( ( ( ( ({...}? => ( ({...}? => (otherlv_1= '#modname' ( (lv_modname_2_0= RULE_STRING ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_3= '#description' ( (lv_desc_4_0= RULE_STRING ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_5= '#icon' ( (lv_icon_6_0= RULE_STRING ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_7= '#version' ( (lv_version_8_0= ruleDecimalValue ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_9= '#domversion' ( (lv_domversion_10_0= ruleDecimalValue ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_11= '#end' ) ) ) ) )+ {...}?) ) ) ( (lv_elements_12_0= ruleAbstractElement ) )* ) ;
    public final EObject ruleDom3Mod() throws RecognitionException {
        EObject current = null;

        Token otherlv_1=null;
        Token lv_modname_2_0=null;
        Token otherlv_3=null;
        Token lv_desc_4_0=null;
        Token otherlv_5=null;
        Token lv_icon_6_0=null;
        Token otherlv_7=null;
        Token otherlv_9=null;
        Token otherlv_11=null;
        AntlrDatatypeRuleToken lv_version_8_0 = null;

        AntlrDatatypeRuleToken lv_domversion_10_0 = null;

        EObject lv_elements_12_0 = null;


         enterRule(); 
            
        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:79:28: ( ( ( ( ( ( ({...}? => ( ({...}? => (otherlv_1= '#modname' ( (lv_modname_2_0= RULE_STRING ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_3= '#description' ( (lv_desc_4_0= RULE_STRING ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_5= '#icon' ( (lv_icon_6_0= RULE_STRING ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_7= '#version' ( (lv_version_8_0= ruleDecimalValue ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_9= '#domversion' ( (lv_domversion_10_0= ruleDecimalValue ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_11= '#end' ) ) ) ) )+ {...}?) ) ) ( (lv_elements_12_0= ruleAbstractElement ) )* ) )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:80:1: ( ( ( ( ( ({...}? => ( ({...}? => (otherlv_1= '#modname' ( (lv_modname_2_0= RULE_STRING ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_3= '#description' ( (lv_desc_4_0= RULE_STRING ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_5= '#icon' ( (lv_icon_6_0= RULE_STRING ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_7= '#version' ( (lv_version_8_0= ruleDecimalValue ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_9= '#domversion' ( (lv_domversion_10_0= ruleDecimalValue ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_11= '#end' ) ) ) ) )+ {...}?) ) ) ( (lv_elements_12_0= ruleAbstractElement ) )* )
            {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:80:1: ( ( ( ( ( ({...}? => ( ({...}? => (otherlv_1= '#modname' ( (lv_modname_2_0= RULE_STRING ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_3= '#description' ( (lv_desc_4_0= RULE_STRING ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_5= '#icon' ( (lv_icon_6_0= RULE_STRING ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_7= '#version' ( (lv_version_8_0= ruleDecimalValue ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_9= '#domversion' ( (lv_domversion_10_0= ruleDecimalValue ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_11= '#end' ) ) ) ) )+ {...}?) ) ) ( (lv_elements_12_0= ruleAbstractElement ) )* )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:80:2: ( ( ( ( ({...}? => ( ({...}? => (otherlv_1= '#modname' ( (lv_modname_2_0= RULE_STRING ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_3= '#description' ( (lv_desc_4_0= RULE_STRING ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_5= '#icon' ( (lv_icon_6_0= RULE_STRING ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_7= '#version' ( (lv_version_8_0= ruleDecimalValue ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_9= '#domversion' ( (lv_domversion_10_0= ruleDecimalValue ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_11= '#end' ) ) ) ) )+ {...}?) ) ) ( (lv_elements_12_0= ruleAbstractElement ) )*
            {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:80:2: ( ( ( ( ({...}? => ( ({...}? => (otherlv_1= '#modname' ( (lv_modname_2_0= RULE_STRING ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_3= '#description' ( (lv_desc_4_0= RULE_STRING ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_5= '#icon' ( (lv_icon_6_0= RULE_STRING ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_7= '#version' ( (lv_version_8_0= ruleDecimalValue ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_9= '#domversion' ( (lv_domversion_10_0= ruleDecimalValue ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_11= '#end' ) ) ) ) )+ {...}?) ) )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:82:1: ( ( ( ({...}? => ( ({...}? => (otherlv_1= '#modname' ( (lv_modname_2_0= RULE_STRING ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_3= '#description' ( (lv_desc_4_0= RULE_STRING ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_5= '#icon' ( (lv_icon_6_0= RULE_STRING ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_7= '#version' ( (lv_version_8_0= ruleDecimalValue ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_9= '#domversion' ( (lv_domversion_10_0= ruleDecimalValue ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_11= '#end' ) ) ) ) )+ {...}?) )
            {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:82:1: ( ( ( ({...}? => ( ({...}? => (otherlv_1= '#modname' ( (lv_modname_2_0= RULE_STRING ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_3= '#description' ( (lv_desc_4_0= RULE_STRING ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_5= '#icon' ( (lv_icon_6_0= RULE_STRING ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_7= '#version' ( (lv_version_8_0= ruleDecimalValue ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_9= '#domversion' ( (lv_domversion_10_0= ruleDecimalValue ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_11= '#end' ) ) ) ) )+ {...}?) )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:83:2: ( ( ({...}? => ( ({...}? => (otherlv_1= '#modname' ( (lv_modname_2_0= RULE_STRING ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_3= '#description' ( (lv_desc_4_0= RULE_STRING ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_5= '#icon' ( (lv_icon_6_0= RULE_STRING ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_7= '#version' ( (lv_version_8_0= ruleDecimalValue ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_9= '#domversion' ( (lv_domversion_10_0= ruleDecimalValue ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_11= '#end' ) ) ) ) )+ {...}?)
            {
             
            	  getUnorderedGroupHelper().enter(grammarAccess.getDom3ModAccess().getUnorderedGroup_0());
            	
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:86:2: ( ( ({...}? => ( ({...}? => (otherlv_1= '#modname' ( (lv_modname_2_0= RULE_STRING ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_3= '#description' ( (lv_desc_4_0= RULE_STRING ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_5= '#icon' ( (lv_icon_6_0= RULE_STRING ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_7= '#version' ( (lv_version_8_0= ruleDecimalValue ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_9= '#domversion' ( (lv_domversion_10_0= ruleDecimalValue ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_11= '#end' ) ) ) ) )+ {...}?)
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:87:3: ( ({...}? => ( ({...}? => (otherlv_1= '#modname' ( (lv_modname_2_0= RULE_STRING ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_3= '#description' ( (lv_desc_4_0= RULE_STRING ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_5= '#icon' ( (lv_icon_6_0= RULE_STRING ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_7= '#version' ( (lv_version_8_0= ruleDecimalValue ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_9= '#domversion' ( (lv_domversion_10_0= ruleDecimalValue ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_11= '#end' ) ) ) ) )+ {...}?
            {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:87:3: ( ({...}? => ( ({...}? => (otherlv_1= '#modname' ( (lv_modname_2_0= RULE_STRING ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_3= '#description' ( (lv_desc_4_0= RULE_STRING ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_5= '#icon' ( (lv_icon_6_0= RULE_STRING ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_7= '#version' ( (lv_version_8_0= ruleDecimalValue ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_9= '#domversion' ( (lv_domversion_10_0= ruleDecimalValue ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_11= '#end' ) ) ) ) )+
            int cnt1=0;
            loop1:
            do {
                int alt1=7;
                int LA1_0 = input.LA(1);

                if ( LA1_0 ==10 && getUnorderedGroupHelper().canSelect(grammarAccess.getDom3ModAccess().getUnorderedGroup_0(), 0) ) {
                    alt1=1;
                }
                else if ( LA1_0 ==11 && getUnorderedGroupHelper().canSelect(grammarAccess.getDom3ModAccess().getUnorderedGroup_0(), 1) ) {
                    alt1=2;
                }
                else if ( LA1_0 ==12 && getUnorderedGroupHelper().canSelect(grammarAccess.getDom3ModAccess().getUnorderedGroup_0(), 2) ) {
                    alt1=3;
                }
                else if ( LA1_0 ==13 && getUnorderedGroupHelper().canSelect(grammarAccess.getDom3ModAccess().getUnorderedGroup_0(), 3) ) {
                    alt1=4;
                }
                else if ( LA1_0 ==14 && getUnorderedGroupHelper().canSelect(grammarAccess.getDom3ModAccess().getUnorderedGroup_0(), 4) ) {
                    alt1=5;
                }
                else if ( LA1_0 ==15 && getUnorderedGroupHelper().canSelect(grammarAccess.getDom3ModAccess().getUnorderedGroup_0(), 5) ) {
                    alt1=6;
                }


                switch (alt1) {
            	case 1 :
            	    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:89:4: ({...}? => ( ({...}? => (otherlv_1= '#modname' ( (lv_modname_2_0= RULE_STRING ) ) ) ) ) )
            	    {
            	    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:89:4: ({...}? => ( ({...}? => (otherlv_1= '#modname' ( (lv_modname_2_0= RULE_STRING ) ) ) ) ) )
            	    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:90:5: {...}? => ( ({...}? => (otherlv_1= '#modname' ( (lv_modname_2_0= RULE_STRING ) ) ) ) )
            	    {
            	    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getDom3ModAccess().getUnorderedGroup_0(), 0) ) {
            	        throw new FailedPredicateException(input, "ruleDom3Mod", "getUnorderedGroupHelper().canSelect(grammarAccess.getDom3ModAccess().getUnorderedGroup_0(), 0)");
            	    }
            	    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:90:104: ( ({...}? => (otherlv_1= '#modname' ( (lv_modname_2_0= RULE_STRING ) ) ) ) )
            	    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:91:6: ({...}? => (otherlv_1= '#modname' ( (lv_modname_2_0= RULE_STRING ) ) ) )
            	    {
            	     
            	    	 				  getUnorderedGroupHelper().select(grammarAccess.getDom3ModAccess().getUnorderedGroup_0(), 0);
            	    	 				
            	    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:94:6: ({...}? => (otherlv_1= '#modname' ( (lv_modname_2_0= RULE_STRING ) ) ) )
            	    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:94:7: {...}? => (otherlv_1= '#modname' ( (lv_modname_2_0= RULE_STRING ) ) )
            	    {
            	    if ( !((true)) ) {
            	        throw new FailedPredicateException(input, "ruleDom3Mod", "true");
            	    }
            	    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:94:16: (otherlv_1= '#modname' ( (lv_modname_2_0= RULE_STRING ) ) )
            	    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:94:18: otherlv_1= '#modname' ( (lv_modname_2_0= RULE_STRING ) )
            	    {
            	    otherlv_1=(Token)match(input,10,FOLLOW_10_in_ruleDom3Mod168); 

            	        	newLeafNode(otherlv_1, grammarAccess.getDom3ModAccess().getModnameKeyword_0_0_0());
            	        
            	    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:98:1: ( (lv_modname_2_0= RULE_STRING ) )
            	    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:99:1: (lv_modname_2_0= RULE_STRING )
            	    {
            	    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:99:1: (lv_modname_2_0= RULE_STRING )
            	    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:100:3: lv_modname_2_0= RULE_STRING
            	    {
            	    lv_modname_2_0=(Token)match(input,RULE_STRING,FOLLOW_RULE_STRING_in_ruleDom3Mod185); 

            	    			newLeafNode(lv_modname_2_0, grammarAccess.getDom3ModAccess().getModnameSTRINGTerminalRuleCall_0_0_1_0()); 
            	    		

            	    	        if (current==null) {
            	    	            current = createModelElement(grammarAccess.getDom3ModRule());
            	    	        }
            	           		setWithLastConsumed(
            	           			current, 
            	           			"modname",
            	            		lv_modname_2_0, 
            	            		"STRING");
            	    	    

            	    }


            	    }


            	    }


            	    }

            	     
            	    	 				  getUnorderedGroupHelper().returnFromSelection(grammarAccess.getDom3ModAccess().getUnorderedGroup_0());
            	    	 				

            	    }


            	    }


            	    }
            	    break;
            	case 2 :
            	    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:123:4: ({...}? => ( ({...}? => (otherlv_3= '#description' ( (lv_desc_4_0= RULE_STRING ) ) ) ) ) )
            	    {
            	    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:123:4: ({...}? => ( ({...}? => (otherlv_3= '#description' ( (lv_desc_4_0= RULE_STRING ) ) ) ) ) )
            	    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:124:5: {...}? => ( ({...}? => (otherlv_3= '#description' ( (lv_desc_4_0= RULE_STRING ) ) ) ) )
            	    {
            	    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getDom3ModAccess().getUnorderedGroup_0(), 1) ) {
            	        throw new FailedPredicateException(input, "ruleDom3Mod", "getUnorderedGroupHelper().canSelect(grammarAccess.getDom3ModAccess().getUnorderedGroup_0(), 1)");
            	    }
            	    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:124:104: ( ({...}? => (otherlv_3= '#description' ( (lv_desc_4_0= RULE_STRING ) ) ) ) )
            	    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:125:6: ({...}? => (otherlv_3= '#description' ( (lv_desc_4_0= RULE_STRING ) ) ) )
            	    {
            	     
            	    	 				  getUnorderedGroupHelper().select(grammarAccess.getDom3ModAccess().getUnorderedGroup_0(), 1);
            	    	 				
            	    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:128:6: ({...}? => (otherlv_3= '#description' ( (lv_desc_4_0= RULE_STRING ) ) ) )
            	    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:128:7: {...}? => (otherlv_3= '#description' ( (lv_desc_4_0= RULE_STRING ) ) )
            	    {
            	    if ( !((true)) ) {
            	        throw new FailedPredicateException(input, "ruleDom3Mod", "true");
            	    }
            	    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:128:16: (otherlv_3= '#description' ( (lv_desc_4_0= RULE_STRING ) ) )
            	    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:128:18: otherlv_3= '#description' ( (lv_desc_4_0= RULE_STRING ) )
            	    {
            	    otherlv_3=(Token)match(input,11,FOLLOW_11_in_ruleDom3Mod258); 

            	        	newLeafNode(otherlv_3, grammarAccess.getDom3ModAccess().getDescriptionKeyword_0_1_0());
            	        
            	    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:132:1: ( (lv_desc_4_0= RULE_STRING ) )
            	    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:133:1: (lv_desc_4_0= RULE_STRING )
            	    {
            	    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:133:1: (lv_desc_4_0= RULE_STRING )
            	    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:134:3: lv_desc_4_0= RULE_STRING
            	    {
            	    lv_desc_4_0=(Token)match(input,RULE_STRING,FOLLOW_RULE_STRING_in_ruleDom3Mod275); 

            	    			newLeafNode(lv_desc_4_0, grammarAccess.getDom3ModAccess().getDescSTRINGTerminalRuleCall_0_1_1_0()); 
            	    		

            	    	        if (current==null) {
            	    	            current = createModelElement(grammarAccess.getDom3ModRule());
            	    	        }
            	           		setWithLastConsumed(
            	           			current, 
            	           			"desc",
            	            		lv_desc_4_0, 
            	            		"STRING");
            	    	    

            	    }


            	    }


            	    }


            	    }

            	     
            	    	 				  getUnorderedGroupHelper().returnFromSelection(grammarAccess.getDom3ModAccess().getUnorderedGroup_0());
            	    	 				

            	    }


            	    }


            	    }
            	    break;
            	case 3 :
            	    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:157:4: ({...}? => ( ({...}? => (otherlv_5= '#icon' ( (lv_icon_6_0= RULE_STRING ) ) ) ) ) )
            	    {
            	    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:157:4: ({...}? => ( ({...}? => (otherlv_5= '#icon' ( (lv_icon_6_0= RULE_STRING ) ) ) ) ) )
            	    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:158:5: {...}? => ( ({...}? => (otherlv_5= '#icon' ( (lv_icon_6_0= RULE_STRING ) ) ) ) )
            	    {
            	    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getDom3ModAccess().getUnorderedGroup_0(), 2) ) {
            	        throw new FailedPredicateException(input, "ruleDom3Mod", "getUnorderedGroupHelper().canSelect(grammarAccess.getDom3ModAccess().getUnorderedGroup_0(), 2)");
            	    }
            	    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:158:104: ( ({...}? => (otherlv_5= '#icon' ( (lv_icon_6_0= RULE_STRING ) ) ) ) )
            	    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:159:6: ({...}? => (otherlv_5= '#icon' ( (lv_icon_6_0= RULE_STRING ) ) ) )
            	    {
            	     
            	    	 				  getUnorderedGroupHelper().select(grammarAccess.getDom3ModAccess().getUnorderedGroup_0(), 2);
            	    	 				
            	    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:162:6: ({...}? => (otherlv_5= '#icon' ( (lv_icon_6_0= RULE_STRING ) ) ) )
            	    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:162:7: {...}? => (otherlv_5= '#icon' ( (lv_icon_6_0= RULE_STRING ) ) )
            	    {
            	    if ( !((true)) ) {
            	        throw new FailedPredicateException(input, "ruleDom3Mod", "true");
            	    }
            	    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:162:16: (otherlv_5= '#icon' ( (lv_icon_6_0= RULE_STRING ) ) )
            	    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:162:18: otherlv_5= '#icon' ( (lv_icon_6_0= RULE_STRING ) )
            	    {
            	    otherlv_5=(Token)match(input,12,FOLLOW_12_in_ruleDom3Mod348); 

            	        	newLeafNode(otherlv_5, grammarAccess.getDom3ModAccess().getIconKeyword_0_2_0());
            	        
            	    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:166:1: ( (lv_icon_6_0= RULE_STRING ) )
            	    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:167:1: (lv_icon_6_0= RULE_STRING )
            	    {
            	    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:167:1: (lv_icon_6_0= RULE_STRING )
            	    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:168:3: lv_icon_6_0= RULE_STRING
            	    {
            	    lv_icon_6_0=(Token)match(input,RULE_STRING,FOLLOW_RULE_STRING_in_ruleDom3Mod365); 

            	    			newLeafNode(lv_icon_6_0, grammarAccess.getDom3ModAccess().getIconSTRINGTerminalRuleCall_0_2_1_0()); 
            	    		

            	    	        if (current==null) {
            	    	            current = createModelElement(grammarAccess.getDom3ModRule());
            	    	        }
            	           		setWithLastConsumed(
            	           			current, 
            	           			"icon",
            	            		lv_icon_6_0, 
            	            		"STRING");
            	    	    

            	    }


            	    }


            	    }


            	    }

            	     
            	    	 				  getUnorderedGroupHelper().returnFromSelection(grammarAccess.getDom3ModAccess().getUnorderedGroup_0());
            	    	 				

            	    }


            	    }


            	    }
            	    break;
            	case 4 :
            	    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:191:4: ({...}? => ( ({...}? => (otherlv_7= '#version' ( (lv_version_8_0= ruleDecimalValue ) ) ) ) ) )
            	    {
            	    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:191:4: ({...}? => ( ({...}? => (otherlv_7= '#version' ( (lv_version_8_0= ruleDecimalValue ) ) ) ) ) )
            	    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:192:5: {...}? => ( ({...}? => (otherlv_7= '#version' ( (lv_version_8_0= ruleDecimalValue ) ) ) ) )
            	    {
            	    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getDom3ModAccess().getUnorderedGroup_0(), 3) ) {
            	        throw new FailedPredicateException(input, "ruleDom3Mod", "getUnorderedGroupHelper().canSelect(grammarAccess.getDom3ModAccess().getUnorderedGroup_0(), 3)");
            	    }
            	    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:192:104: ( ({...}? => (otherlv_7= '#version' ( (lv_version_8_0= ruleDecimalValue ) ) ) ) )
            	    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:193:6: ({...}? => (otherlv_7= '#version' ( (lv_version_8_0= ruleDecimalValue ) ) ) )
            	    {
            	     
            	    	 				  getUnorderedGroupHelper().select(grammarAccess.getDom3ModAccess().getUnorderedGroup_0(), 3);
            	    	 				
            	    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:196:6: ({...}? => (otherlv_7= '#version' ( (lv_version_8_0= ruleDecimalValue ) ) ) )
            	    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:196:7: {...}? => (otherlv_7= '#version' ( (lv_version_8_0= ruleDecimalValue ) ) )
            	    {
            	    if ( !((true)) ) {
            	        throw new FailedPredicateException(input, "ruleDom3Mod", "true");
            	    }
            	    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:196:16: (otherlv_7= '#version' ( (lv_version_8_0= ruleDecimalValue ) ) )
            	    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:196:18: otherlv_7= '#version' ( (lv_version_8_0= ruleDecimalValue ) )
            	    {
            	    otherlv_7=(Token)match(input,13,FOLLOW_13_in_ruleDom3Mod438); 

            	        	newLeafNode(otherlv_7, grammarAccess.getDom3ModAccess().getVersionKeyword_0_3_0());
            	        
            	    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:200:1: ( (lv_version_8_0= ruleDecimalValue ) )
            	    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:201:1: (lv_version_8_0= ruleDecimalValue )
            	    {
            	    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:201:1: (lv_version_8_0= ruleDecimalValue )
            	    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:202:3: lv_version_8_0= ruleDecimalValue
            	    {
            	     
            	    	        newCompositeNode(grammarAccess.getDom3ModAccess().getVersionDecimalValueParserRuleCall_0_3_1_0()); 
            	    	    
            	    pushFollow(FOLLOW_ruleDecimalValue_in_ruleDom3Mod459);
            	    lv_version_8_0=ruleDecimalValue();

            	    state._fsp--;


            	    	        if (current==null) {
            	    	            current = createModelElementForParent(grammarAccess.getDom3ModRule());
            	    	        }
            	           		set(
            	           			current, 
            	           			"version",
            	            		lv_version_8_0, 
            	            		"DecimalValue");
            	    	        afterParserOrEnumRuleCall();
            	    	    

            	    }


            	    }


            	    }


            	    }

            	     
            	    	 				  getUnorderedGroupHelper().returnFromSelection(grammarAccess.getDom3ModAccess().getUnorderedGroup_0());
            	    	 				

            	    }


            	    }


            	    }
            	    break;
            	case 5 :
            	    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:225:4: ({...}? => ( ({...}? => (otherlv_9= '#domversion' ( (lv_domversion_10_0= ruleDecimalValue ) ) ) ) ) )
            	    {
            	    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:225:4: ({...}? => ( ({...}? => (otherlv_9= '#domversion' ( (lv_domversion_10_0= ruleDecimalValue ) ) ) ) ) )
            	    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:226:5: {...}? => ( ({...}? => (otherlv_9= '#domversion' ( (lv_domversion_10_0= ruleDecimalValue ) ) ) ) )
            	    {
            	    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getDom3ModAccess().getUnorderedGroup_0(), 4) ) {
            	        throw new FailedPredicateException(input, "ruleDom3Mod", "getUnorderedGroupHelper().canSelect(grammarAccess.getDom3ModAccess().getUnorderedGroup_0(), 4)");
            	    }
            	    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:226:104: ( ({...}? => (otherlv_9= '#domversion' ( (lv_domversion_10_0= ruleDecimalValue ) ) ) ) )
            	    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:227:6: ({...}? => (otherlv_9= '#domversion' ( (lv_domversion_10_0= ruleDecimalValue ) ) ) )
            	    {
            	     
            	    	 				  getUnorderedGroupHelper().select(grammarAccess.getDom3ModAccess().getUnorderedGroup_0(), 4);
            	    	 				
            	    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:230:6: ({...}? => (otherlv_9= '#domversion' ( (lv_domversion_10_0= ruleDecimalValue ) ) ) )
            	    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:230:7: {...}? => (otherlv_9= '#domversion' ( (lv_domversion_10_0= ruleDecimalValue ) ) )
            	    {
            	    if ( !((true)) ) {
            	        throw new FailedPredicateException(input, "ruleDom3Mod", "true");
            	    }
            	    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:230:16: (otherlv_9= '#domversion' ( (lv_domversion_10_0= ruleDecimalValue ) ) )
            	    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:230:18: otherlv_9= '#domversion' ( (lv_domversion_10_0= ruleDecimalValue ) )
            	    {
            	    otherlv_9=(Token)match(input,14,FOLLOW_14_in_ruleDom3Mod527); 

            	        	newLeafNode(otherlv_9, grammarAccess.getDom3ModAccess().getDomversionKeyword_0_4_0());
            	        
            	    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:234:1: ( (lv_domversion_10_0= ruleDecimalValue ) )
            	    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:235:1: (lv_domversion_10_0= ruleDecimalValue )
            	    {
            	    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:235:1: (lv_domversion_10_0= ruleDecimalValue )
            	    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:236:3: lv_domversion_10_0= ruleDecimalValue
            	    {
            	     
            	    	        newCompositeNode(grammarAccess.getDom3ModAccess().getDomversionDecimalValueParserRuleCall_0_4_1_0()); 
            	    	    
            	    pushFollow(FOLLOW_ruleDecimalValue_in_ruleDom3Mod548);
            	    lv_domversion_10_0=ruleDecimalValue();

            	    state._fsp--;


            	    	        if (current==null) {
            	    	            current = createModelElementForParent(grammarAccess.getDom3ModRule());
            	    	        }
            	           		set(
            	           			current, 
            	           			"domversion",
            	            		lv_domversion_10_0, 
            	            		"DecimalValue");
            	    	        afterParserOrEnumRuleCall();
            	    	    

            	    }


            	    }


            	    }


            	    }

            	     
            	    	 				  getUnorderedGroupHelper().returnFromSelection(grammarAccess.getDom3ModAccess().getUnorderedGroup_0());
            	    	 				

            	    }


            	    }


            	    }
            	    break;
            	case 6 :
            	    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:259:4: ({...}? => ( ({...}? => (otherlv_11= '#end' ) ) ) )
            	    {
            	    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:259:4: ({...}? => ( ({...}? => (otherlv_11= '#end' ) ) ) )
            	    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:260:5: {...}? => ( ({...}? => (otherlv_11= '#end' ) ) )
            	    {
            	    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getDom3ModAccess().getUnorderedGroup_0(), 5) ) {
            	        throw new FailedPredicateException(input, "ruleDom3Mod", "getUnorderedGroupHelper().canSelect(grammarAccess.getDom3ModAccess().getUnorderedGroup_0(), 5)");
            	    }
            	    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:260:104: ( ({...}? => (otherlv_11= '#end' ) ) )
            	    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:261:6: ({...}? => (otherlv_11= '#end' ) )
            	    {
            	     
            	    	 				  getUnorderedGroupHelper().select(grammarAccess.getDom3ModAccess().getUnorderedGroup_0(), 5);
            	    	 				
            	    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:264:6: ({...}? => (otherlv_11= '#end' ) )
            	    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:264:7: {...}? => (otherlv_11= '#end' )
            	    {
            	    if ( !((true)) ) {
            	        throw new FailedPredicateException(input, "ruleDom3Mod", "true");
            	    }
            	    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:264:16: (otherlv_11= '#end' )
            	    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:264:18: otherlv_11= '#end'
            	    {
            	    otherlv_11=(Token)match(input,15,FOLLOW_15_in_ruleDom3Mod616); 

            	        	newLeafNode(otherlv_11, grammarAccess.getDom3ModAccess().getEndKeyword_0_5());
            	        

            	    }


            	    }

            	     
            	    	 				  getUnorderedGroupHelper().returnFromSelection(grammarAccess.getDom3ModAccess().getUnorderedGroup_0());
            	    	 				

            	    }


            	    }


            	    }
            	    break;

            	default :
            	    if ( cnt1 >= 1 ) break loop1;
                        EarlyExitException eee =
                            new EarlyExitException(1, input);
                        throw eee;
                }
                cnt1++;
            } while (true);

            if ( ! getUnorderedGroupHelper().canLeave(grammarAccess.getDom3ModAccess().getUnorderedGroup_0()) ) {
                throw new FailedPredicateException(input, "ruleDom3Mod", "getUnorderedGroupHelper().canLeave(grammarAccess.getDom3ModAccess().getUnorderedGroup_0())");
            }

            }


            }

             
            	  getUnorderedGroupHelper().leave(grammarAccess.getDom3ModAccess().getUnorderedGroup_0());
            	

            }

            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:283:2: ( (lv_elements_12_0= ruleAbstractElement ) )*
            loop2:
            do {
                int alt2=2;
                int LA2_0 = input.LA(1);

                if ( ((LA2_0>=16 && LA2_0<=35)||(LA2_0>=42 && LA2_0<=43)||(LA2_0>=85 && LA2_0<=86)||(LA2_0>=253 && LA2_0<=254)||(LA2_0>=269 && LA2_0<=270)||LA2_0==276||(LA2_0>=278 && LA2_0<=279)||(LA2_0>=304 && LA2_0<=305)) ) {
                    alt2=1;
                }


                switch (alt2) {
            	case 1 :
            	    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:284:1: (lv_elements_12_0= ruleAbstractElement )
            	    {
            	    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:284:1: (lv_elements_12_0= ruleAbstractElement )
            	    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:285:3: lv_elements_12_0= ruleAbstractElement
            	    {
            	     
            	    	        newCompositeNode(grammarAccess.getDom3ModAccess().getElementsAbstractElementParserRuleCall_1_0()); 
            	    	    
            	    pushFollow(FOLLOW_ruleAbstractElement_in_ruleDom3Mod684);
            	    lv_elements_12_0=ruleAbstractElement();

            	    state._fsp--;


            	    	        if (current==null) {
            	    	            current = createModelElementForParent(grammarAccess.getDom3ModRule());
            	    	        }
            	           		add(
            	           			current, 
            	           			"elements",
            	            		lv_elements_12_0, 
            	            		"AbstractElement");
            	    	        afterParserOrEnumRuleCall();
            	    	    

            	    }


            	    }
            	    break;

            	default :
            	    break loop2;
                }
            } while (true);


            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleDom3Mod"


    // $ANTLR start "entryRuleAbstractElement"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:309:1: entryRuleAbstractElement returns [EObject current=null] : iv_ruleAbstractElement= ruleAbstractElement EOF ;
    public final EObject entryRuleAbstractElement() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleAbstractElement = null;


        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:310:2: (iv_ruleAbstractElement= ruleAbstractElement EOF )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:311:2: iv_ruleAbstractElement= ruleAbstractElement EOF
            {
             newCompositeNode(grammarAccess.getAbstractElementRule()); 
            pushFollow(FOLLOW_ruleAbstractElement_in_entryRuleAbstractElement721);
            iv_ruleAbstractElement=ruleAbstractElement();

            state._fsp--;

             current =iv_ruleAbstractElement; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleAbstractElement731); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleAbstractElement"


    // $ANTLR start "ruleAbstractElement"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:318:1: ruleAbstractElement returns [EObject current=null] : (this_General_0= ruleGeneral | this_Armor_1= ruleArmor | this_Weapon_2= ruleWeapon | this_Monster_3= ruleMonster | this_Spell_4= ruleSpell | this_Item_5= ruleItem | this_Name_6= ruleName | this_Site_7= ruleSite | this_Nation_8= ruleNation ) ;
    public final EObject ruleAbstractElement() throws RecognitionException {
        EObject current = null;

        EObject this_General_0 = null;

        EObject this_Armor_1 = null;

        EObject this_Weapon_2 = null;

        EObject this_Monster_3 = null;

        EObject this_Spell_4 = null;

        EObject this_Item_5 = null;

        EObject this_Name_6 = null;

        EObject this_Site_7 = null;

        EObject this_Nation_8 = null;


         enterRule(); 
            
        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:321:28: ( (this_General_0= ruleGeneral | this_Armor_1= ruleArmor | this_Weapon_2= ruleWeapon | this_Monster_3= ruleMonster | this_Spell_4= ruleSpell | this_Item_5= ruleItem | this_Name_6= ruleName | this_Site_7= ruleSite | this_Nation_8= ruleNation ) )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:322:1: (this_General_0= ruleGeneral | this_Armor_1= ruleArmor | this_Weapon_2= ruleWeapon | this_Monster_3= ruleMonster | this_Spell_4= ruleSpell | this_Item_5= ruleItem | this_Name_6= ruleName | this_Site_7= ruleSite | this_Nation_8= ruleNation )
            {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:322:1: (this_General_0= ruleGeneral | this_Armor_1= ruleArmor | this_Weapon_2= ruleWeapon | this_Monster_3= ruleMonster | this_Spell_4= ruleSpell | this_Item_5= ruleItem | this_Name_6= ruleName | this_Site_7= ruleSite | this_Nation_8= ruleNation )
            int alt3=9;
            switch ( input.LA(1) ) {
            case 16:
            case 17:
            case 18:
            case 19:
            case 20:
            case 21:
            case 22:
            case 23:
            case 24:
            case 25:
            case 26:
            case 27:
            case 28:
            case 29:
            case 30:
            case 31:
            case 32:
            case 33:
                {
                alt3=1;
                }
                break;
            case 34:
            case 35:
                {
                alt3=2;
                }
                break;
            case 42:
            case 43:
                {
                alt3=3;
                }
                break;
            case 85:
            case 86:
                {
                alt3=4;
                }
                break;
            case 253:
            case 254:
                {
                alt3=5;
                }
                break;
            case 269:
            case 270:
                {
                alt3=6;
                }
                break;
            case 276:
                {
                alt3=7;
                }
                break;
            case 278:
            case 279:
                {
                alt3=8;
                }
                break;
            case 304:
            case 305:
                {
                alt3=9;
                }
                break;
            default:
                NoViableAltException nvae =
                    new NoViableAltException("", 3, 0, input);

                throw nvae;
            }

            switch (alt3) {
                case 1 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:323:5: this_General_0= ruleGeneral
                    {
                     
                            newCompositeNode(grammarAccess.getAbstractElementAccess().getGeneralParserRuleCall_0()); 
                        
                    pushFollow(FOLLOW_ruleGeneral_in_ruleAbstractElement778);
                    this_General_0=ruleGeneral();

                    state._fsp--;

                     
                            current = this_General_0; 
                            afterParserOrEnumRuleCall();
                        

                    }
                    break;
                case 2 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:333:5: this_Armor_1= ruleArmor
                    {
                     
                            newCompositeNode(grammarAccess.getAbstractElementAccess().getArmorParserRuleCall_1()); 
                        
                    pushFollow(FOLLOW_ruleArmor_in_ruleAbstractElement805);
                    this_Armor_1=ruleArmor();

                    state._fsp--;

                     
                            current = this_Armor_1; 
                            afterParserOrEnumRuleCall();
                        

                    }
                    break;
                case 3 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:343:5: this_Weapon_2= ruleWeapon
                    {
                     
                            newCompositeNode(grammarAccess.getAbstractElementAccess().getWeaponParserRuleCall_2()); 
                        
                    pushFollow(FOLLOW_ruleWeapon_in_ruleAbstractElement832);
                    this_Weapon_2=ruleWeapon();

                    state._fsp--;

                     
                            current = this_Weapon_2; 
                            afterParserOrEnumRuleCall();
                        

                    }
                    break;
                case 4 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:353:5: this_Monster_3= ruleMonster
                    {
                     
                            newCompositeNode(grammarAccess.getAbstractElementAccess().getMonsterParserRuleCall_3()); 
                        
                    pushFollow(FOLLOW_ruleMonster_in_ruleAbstractElement859);
                    this_Monster_3=ruleMonster();

                    state._fsp--;

                     
                            current = this_Monster_3; 
                            afterParserOrEnumRuleCall();
                        

                    }
                    break;
                case 5 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:363:5: this_Spell_4= ruleSpell
                    {
                     
                            newCompositeNode(grammarAccess.getAbstractElementAccess().getSpellParserRuleCall_4()); 
                        
                    pushFollow(FOLLOW_ruleSpell_in_ruleAbstractElement886);
                    this_Spell_4=ruleSpell();

                    state._fsp--;

                     
                            current = this_Spell_4; 
                            afterParserOrEnumRuleCall();
                        

                    }
                    break;
                case 6 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:373:5: this_Item_5= ruleItem
                    {
                     
                            newCompositeNode(grammarAccess.getAbstractElementAccess().getItemParserRuleCall_5()); 
                        
                    pushFollow(FOLLOW_ruleItem_in_ruleAbstractElement913);
                    this_Item_5=ruleItem();

                    state._fsp--;

                     
                            current = this_Item_5; 
                            afterParserOrEnumRuleCall();
                        

                    }
                    break;
                case 7 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:383:5: this_Name_6= ruleName
                    {
                     
                            newCompositeNode(grammarAccess.getAbstractElementAccess().getNameParserRuleCall_6()); 
                        
                    pushFollow(FOLLOW_ruleName_in_ruleAbstractElement940);
                    this_Name_6=ruleName();

                    state._fsp--;

                     
                            current = this_Name_6; 
                            afterParserOrEnumRuleCall();
                        

                    }
                    break;
                case 8 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:393:5: this_Site_7= ruleSite
                    {
                     
                            newCompositeNode(grammarAccess.getAbstractElementAccess().getSiteParserRuleCall_7()); 
                        
                    pushFollow(FOLLOW_ruleSite_in_ruleAbstractElement967);
                    this_Site_7=ruleSite();

                    state._fsp--;

                     
                            current = this_Site_7; 
                            afterParserOrEnumRuleCall();
                        

                    }
                    break;
                case 9 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:403:5: this_Nation_8= ruleNation
                    {
                     
                            newCompositeNode(grammarAccess.getAbstractElementAccess().getNationParserRuleCall_8()); 
                        
                    pushFollow(FOLLOW_ruleNation_in_ruleAbstractElement994);
                    this_Nation_8=ruleNation();

                    state._fsp--;

                     
                            current = this_Nation_8; 
                            afterParserOrEnumRuleCall();
                        

                    }
                    break;

            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleAbstractElement"


    // $ANTLR start "entryRuleGeneral"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:419:1: entryRuleGeneral returns [EObject current=null] : iv_ruleGeneral= ruleGeneral EOF ;
    public final EObject entryRuleGeneral() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleGeneral = null;


        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:420:2: (iv_ruleGeneral= ruleGeneral EOF )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:421:2: iv_ruleGeneral= ruleGeneral EOF
            {
             newCompositeNode(grammarAccess.getGeneralRule()); 
            pushFollow(FOLLOW_ruleGeneral_in_entryRuleGeneral1029);
            iv_ruleGeneral=ruleGeneral();

            state._fsp--;

             current =iv_ruleGeneral; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleGeneral1039); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleGeneral"


    // $ANTLR start "ruleGeneral"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:428:1: ruleGeneral returns [EObject current=null] : this_GeneralPattern1_0= ruleGeneralPattern1 ;
    public final EObject ruleGeneral() throws RecognitionException {
        EObject current = null;

        EObject this_GeneralPattern1_0 = null;


         enterRule(); 
            
        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:431:28: (this_GeneralPattern1_0= ruleGeneralPattern1 )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:433:5: this_GeneralPattern1_0= ruleGeneralPattern1
            {
             
                    newCompositeNode(grammarAccess.getGeneralAccess().getGeneralPattern1ParserRuleCall()); 
                
            pushFollow(FOLLOW_ruleGeneralPattern1_in_ruleGeneral1085);
            this_GeneralPattern1_0=ruleGeneralPattern1();

            state._fsp--;

             
                    current = this_GeneralPattern1_0; 
                    afterParserOrEnumRuleCall();
                

            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleGeneral"


    // $ANTLR start "entryRuleGeneralPattern1"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:449:1: entryRuleGeneralPattern1 returns [EObject current=null] : iv_ruleGeneralPattern1= ruleGeneralPattern1 EOF ;
    public final EObject entryRuleGeneralPattern1() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleGeneralPattern1 = null;


        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:450:2: (iv_ruleGeneralPattern1= ruleGeneralPattern1 EOF )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:451:2: iv_ruleGeneralPattern1= ruleGeneralPattern1 EOF
            {
             newCompositeNode(grammarAccess.getGeneralPattern1Rule()); 
            pushFollow(FOLLOW_ruleGeneralPattern1_in_entryRuleGeneralPattern11119);
            iv_ruleGeneralPattern1=ruleGeneralPattern1();

            state._fsp--;

             current =iv_ruleGeneralPattern1; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleGeneralPattern11129); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleGeneralPattern1"


    // $ANTLR start "ruleGeneralPattern1"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:458:1: ruleGeneralPattern1 returns [EObject current=null] : (this_GeneralInst1_0= ruleGeneralInst1 ( (lv_value_1_0= RULE_INT ) ) (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )* (otherlv_3= '#end' )? ) ;
    public final EObject ruleGeneralPattern1() throws RecognitionException {
        EObject current = null;

        Token lv_value_1_0=null;
        Token this_FREE_FORM_COMMENT_2=null;
        Token otherlv_3=null;
        EObject this_GeneralInst1_0 = null;


         enterRule(); 
            
        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:461:28: ( (this_GeneralInst1_0= ruleGeneralInst1 ( (lv_value_1_0= RULE_INT ) ) (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )* (otherlv_3= '#end' )? ) )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:462:1: (this_GeneralInst1_0= ruleGeneralInst1 ( (lv_value_1_0= RULE_INT ) ) (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )* (otherlv_3= '#end' )? )
            {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:462:1: (this_GeneralInst1_0= ruleGeneralInst1 ( (lv_value_1_0= RULE_INT ) ) (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )* (otherlv_3= '#end' )? )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:463:5: this_GeneralInst1_0= ruleGeneralInst1 ( (lv_value_1_0= RULE_INT ) ) (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )* (otherlv_3= '#end' )?
            {
             
                    newCompositeNode(grammarAccess.getGeneralPattern1Access().getGeneralInst1ParserRuleCall_0()); 
                
            pushFollow(FOLLOW_ruleGeneralInst1_in_ruleGeneralPattern11176);
            this_GeneralInst1_0=ruleGeneralInst1();

            state._fsp--;

             
                    current = this_GeneralInst1_0; 
                    afterParserOrEnumRuleCall();
                
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:471:1: ( (lv_value_1_0= RULE_INT ) )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:472:1: (lv_value_1_0= RULE_INT )
            {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:472:1: (lv_value_1_0= RULE_INT )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:473:3: lv_value_1_0= RULE_INT
            {
            lv_value_1_0=(Token)match(input,RULE_INT,FOLLOW_RULE_INT_in_ruleGeneralPattern11192); 

            			newLeafNode(lv_value_1_0, grammarAccess.getGeneralPattern1Access().getValueINTTerminalRuleCall_1_0()); 
            		

            	        if (current==null) {
            	            current = createModelElement(grammarAccess.getGeneralPattern1Rule());
            	        }
                   		setWithLastConsumed(
                   			current, 
                   			"value",
                    		lv_value_1_0, 
                    		"INT");
            	    

            }


            }

            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:489:2: (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )*
            loop4:
            do {
                int alt4=2;
                int LA4_0 = input.LA(1);

                if ( (LA4_0==RULE_FREE_FORM_COMMENT) ) {
                    alt4=1;
                }


                switch (alt4) {
            	case 1 :
            	    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:489:3: this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT
            	    {
            	    this_FREE_FORM_COMMENT_2=(Token)match(input,RULE_FREE_FORM_COMMENT,FOLLOW_RULE_FREE_FORM_COMMENT_in_ruleGeneralPattern11209); 
            	     
            	        newLeafNode(this_FREE_FORM_COMMENT_2, grammarAccess.getGeneralPattern1Access().getFREE_FORM_COMMENTTerminalRuleCall_2()); 
            	        

            	    }
            	    break;

            	default :
            	    break loop4;
                }
            } while (true);

            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:493:3: (otherlv_3= '#end' )?
            int alt5=2;
            int LA5_0 = input.LA(1);

            if ( (LA5_0==15) ) {
                alt5=1;
            }
            switch (alt5) {
                case 1 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:493:5: otherlv_3= '#end'
                    {
                    otherlv_3=(Token)match(input,15,FOLLOW_15_in_ruleGeneralPattern11223); 

                        	newLeafNode(otherlv_3, grammarAccess.getGeneralPattern1Access().getEndKeyword_3());
                        

                    }
                    break;

            }


            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleGeneralPattern1"


    // $ANTLR start "entryRuleGeneralInst1"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:505:1: entryRuleGeneralInst1 returns [EObject current=null] : iv_ruleGeneralInst1= ruleGeneralInst1 EOF ;
    public final EObject entryRuleGeneralInst1() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleGeneralInst1 = null;


        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:506:2: (iv_ruleGeneralInst1= ruleGeneralInst1 EOF )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:507:2: iv_ruleGeneralInst1= ruleGeneralInst1 EOF
            {
             newCompositeNode(grammarAccess.getGeneralInst1Rule()); 
            pushFollow(FOLLOW_ruleGeneralInst1_in_entryRuleGeneralInst11261);
            iv_ruleGeneralInst1=ruleGeneralInst1();

            state._fsp--;

             current =iv_ruleGeneralInst1; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleGeneralInst11271); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleGeneralInst1"


    // $ANTLR start "ruleGeneralInst1"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:514:1: ruleGeneralInst1 returns [EObject current=null] : ( ( (lv_poppergold_0_0= '#poppergold' ) ) | ( (lv_resourcemult_1_0= '#resourcemult' ) ) | ( (lv_supplymult_2_0= '#supplymult' ) ) | ( (lv_unresthalfinc_3_0= '#unresthalfinc' ) ) | ( (lv_unresthalfres_4_0= '#unresthalfres' ) ) | ( (lv_eventisrare_5_0= '#eventisrare' ) ) | ( (lv_turmoilincome_6_0= '#turmoilincome' ) ) | ( (lv_turmoilevents_7_0= '#turmoilevents' ) ) | ( (lv_deathincome_8_0= '#deathincome' ) ) | ( (lv_deathsupply_9_0= '#deathsupply' ) ) | ( (lv_deathdeath_10_0= '#deathdeath' ) ) | ( (lv_slothincome_11_0= '#slothincome' ) ) | ( (lv_slothresources_12_0= '#slothresources' ) ) | ( (lv_coldincome_13_0= '#coldincome' ) ) | ( (lv_coldsupply_14_0= '#coldsupply' ) ) | ( (lv_misfortune_15_0= '#misfortune' ) ) | ( (lv_luckevents_16_0= '#luckevents' ) ) | ( (lv_researchscale_17_0= '#researchscale' ) ) ) ;
    public final EObject ruleGeneralInst1() throws RecognitionException {
        EObject current = null;

        Token lv_poppergold_0_0=null;
        Token lv_resourcemult_1_0=null;
        Token lv_supplymult_2_0=null;
        Token lv_unresthalfinc_3_0=null;
        Token lv_unresthalfres_4_0=null;
        Token lv_eventisrare_5_0=null;
        Token lv_turmoilincome_6_0=null;
        Token lv_turmoilevents_7_0=null;
        Token lv_deathincome_8_0=null;
        Token lv_deathsupply_9_0=null;
        Token lv_deathdeath_10_0=null;
        Token lv_slothincome_11_0=null;
        Token lv_slothresources_12_0=null;
        Token lv_coldincome_13_0=null;
        Token lv_coldsupply_14_0=null;
        Token lv_misfortune_15_0=null;
        Token lv_luckevents_16_0=null;
        Token lv_researchscale_17_0=null;

         enterRule(); 
            
        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:517:28: ( ( ( (lv_poppergold_0_0= '#poppergold' ) ) | ( (lv_resourcemult_1_0= '#resourcemult' ) ) | ( (lv_supplymult_2_0= '#supplymult' ) ) | ( (lv_unresthalfinc_3_0= '#unresthalfinc' ) ) | ( (lv_unresthalfres_4_0= '#unresthalfres' ) ) | ( (lv_eventisrare_5_0= '#eventisrare' ) ) | ( (lv_turmoilincome_6_0= '#turmoilincome' ) ) | ( (lv_turmoilevents_7_0= '#turmoilevents' ) ) | ( (lv_deathincome_8_0= '#deathincome' ) ) | ( (lv_deathsupply_9_0= '#deathsupply' ) ) | ( (lv_deathdeath_10_0= '#deathdeath' ) ) | ( (lv_slothincome_11_0= '#slothincome' ) ) | ( (lv_slothresources_12_0= '#slothresources' ) ) | ( (lv_coldincome_13_0= '#coldincome' ) ) | ( (lv_coldsupply_14_0= '#coldsupply' ) ) | ( (lv_misfortune_15_0= '#misfortune' ) ) | ( (lv_luckevents_16_0= '#luckevents' ) ) | ( (lv_researchscale_17_0= '#researchscale' ) ) ) )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:518:1: ( ( (lv_poppergold_0_0= '#poppergold' ) ) | ( (lv_resourcemult_1_0= '#resourcemult' ) ) | ( (lv_supplymult_2_0= '#supplymult' ) ) | ( (lv_unresthalfinc_3_0= '#unresthalfinc' ) ) | ( (lv_unresthalfres_4_0= '#unresthalfres' ) ) | ( (lv_eventisrare_5_0= '#eventisrare' ) ) | ( (lv_turmoilincome_6_0= '#turmoilincome' ) ) | ( (lv_turmoilevents_7_0= '#turmoilevents' ) ) | ( (lv_deathincome_8_0= '#deathincome' ) ) | ( (lv_deathsupply_9_0= '#deathsupply' ) ) | ( (lv_deathdeath_10_0= '#deathdeath' ) ) | ( (lv_slothincome_11_0= '#slothincome' ) ) | ( (lv_slothresources_12_0= '#slothresources' ) ) | ( (lv_coldincome_13_0= '#coldincome' ) ) | ( (lv_coldsupply_14_0= '#coldsupply' ) ) | ( (lv_misfortune_15_0= '#misfortune' ) ) | ( (lv_luckevents_16_0= '#luckevents' ) ) | ( (lv_researchscale_17_0= '#researchscale' ) ) )
            {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:518:1: ( ( (lv_poppergold_0_0= '#poppergold' ) ) | ( (lv_resourcemult_1_0= '#resourcemult' ) ) | ( (lv_supplymult_2_0= '#supplymult' ) ) | ( (lv_unresthalfinc_3_0= '#unresthalfinc' ) ) | ( (lv_unresthalfres_4_0= '#unresthalfres' ) ) | ( (lv_eventisrare_5_0= '#eventisrare' ) ) | ( (lv_turmoilincome_6_0= '#turmoilincome' ) ) | ( (lv_turmoilevents_7_0= '#turmoilevents' ) ) | ( (lv_deathincome_8_0= '#deathincome' ) ) | ( (lv_deathsupply_9_0= '#deathsupply' ) ) | ( (lv_deathdeath_10_0= '#deathdeath' ) ) | ( (lv_slothincome_11_0= '#slothincome' ) ) | ( (lv_slothresources_12_0= '#slothresources' ) ) | ( (lv_coldincome_13_0= '#coldincome' ) ) | ( (lv_coldsupply_14_0= '#coldsupply' ) ) | ( (lv_misfortune_15_0= '#misfortune' ) ) | ( (lv_luckevents_16_0= '#luckevents' ) ) | ( (lv_researchscale_17_0= '#researchscale' ) ) )
            int alt6=18;
            switch ( input.LA(1) ) {
            case 16:
                {
                alt6=1;
                }
                break;
            case 17:
                {
                alt6=2;
                }
                break;
            case 18:
                {
                alt6=3;
                }
                break;
            case 19:
                {
                alt6=4;
                }
                break;
            case 20:
                {
                alt6=5;
                }
                break;
            case 21:
                {
                alt6=6;
                }
                break;
            case 22:
                {
                alt6=7;
                }
                break;
            case 23:
                {
                alt6=8;
                }
                break;
            case 24:
                {
                alt6=9;
                }
                break;
            case 25:
                {
                alt6=10;
                }
                break;
            case 26:
                {
                alt6=11;
                }
                break;
            case 27:
                {
                alt6=12;
                }
                break;
            case 28:
                {
                alt6=13;
                }
                break;
            case 29:
                {
                alt6=14;
                }
                break;
            case 30:
                {
                alt6=15;
                }
                break;
            case 31:
                {
                alt6=16;
                }
                break;
            case 32:
                {
                alt6=17;
                }
                break;
            case 33:
                {
                alt6=18;
                }
                break;
            default:
                NoViableAltException nvae =
                    new NoViableAltException("", 6, 0, input);

                throw nvae;
            }

            switch (alt6) {
                case 1 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:518:2: ( (lv_poppergold_0_0= '#poppergold' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:518:2: ( (lv_poppergold_0_0= '#poppergold' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:519:1: (lv_poppergold_0_0= '#poppergold' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:519:1: (lv_poppergold_0_0= '#poppergold' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:520:3: lv_poppergold_0_0= '#poppergold'
                    {
                    lv_poppergold_0_0=(Token)match(input,16,FOLLOW_16_in_ruleGeneralInst11314); 

                            newLeafNode(lv_poppergold_0_0, grammarAccess.getGeneralInst1Access().getPoppergoldPoppergoldKeyword_0_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getGeneralInst1Rule());
                    	        }
                           		setWithLastConsumed(current, "poppergold", true, "#poppergold");
                    	    

                    }


                    }


                    }
                    break;
                case 2 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:534:6: ( (lv_resourcemult_1_0= '#resourcemult' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:534:6: ( (lv_resourcemult_1_0= '#resourcemult' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:535:1: (lv_resourcemult_1_0= '#resourcemult' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:535:1: (lv_resourcemult_1_0= '#resourcemult' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:536:3: lv_resourcemult_1_0= '#resourcemult'
                    {
                    lv_resourcemult_1_0=(Token)match(input,17,FOLLOW_17_in_ruleGeneralInst11351); 

                            newLeafNode(lv_resourcemult_1_0, grammarAccess.getGeneralInst1Access().getResourcemultResourcemultKeyword_1_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getGeneralInst1Rule());
                    	        }
                           		setWithLastConsumed(current, "resourcemult", true, "#resourcemult");
                    	    

                    }


                    }


                    }
                    break;
                case 3 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:550:6: ( (lv_supplymult_2_0= '#supplymult' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:550:6: ( (lv_supplymult_2_0= '#supplymult' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:551:1: (lv_supplymult_2_0= '#supplymult' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:551:1: (lv_supplymult_2_0= '#supplymult' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:552:3: lv_supplymult_2_0= '#supplymult'
                    {
                    lv_supplymult_2_0=(Token)match(input,18,FOLLOW_18_in_ruleGeneralInst11388); 

                            newLeafNode(lv_supplymult_2_0, grammarAccess.getGeneralInst1Access().getSupplymultSupplymultKeyword_2_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getGeneralInst1Rule());
                    	        }
                           		setWithLastConsumed(current, "supplymult", true, "#supplymult");
                    	    

                    }


                    }


                    }
                    break;
                case 4 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:566:6: ( (lv_unresthalfinc_3_0= '#unresthalfinc' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:566:6: ( (lv_unresthalfinc_3_0= '#unresthalfinc' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:567:1: (lv_unresthalfinc_3_0= '#unresthalfinc' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:567:1: (lv_unresthalfinc_3_0= '#unresthalfinc' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:568:3: lv_unresthalfinc_3_0= '#unresthalfinc'
                    {
                    lv_unresthalfinc_3_0=(Token)match(input,19,FOLLOW_19_in_ruleGeneralInst11425); 

                            newLeafNode(lv_unresthalfinc_3_0, grammarAccess.getGeneralInst1Access().getUnresthalfincUnresthalfincKeyword_3_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getGeneralInst1Rule());
                    	        }
                           		setWithLastConsumed(current, "unresthalfinc", true, "#unresthalfinc");
                    	    

                    }


                    }


                    }
                    break;
                case 5 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:582:6: ( (lv_unresthalfres_4_0= '#unresthalfres' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:582:6: ( (lv_unresthalfres_4_0= '#unresthalfres' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:583:1: (lv_unresthalfres_4_0= '#unresthalfres' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:583:1: (lv_unresthalfres_4_0= '#unresthalfres' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:584:3: lv_unresthalfres_4_0= '#unresthalfres'
                    {
                    lv_unresthalfres_4_0=(Token)match(input,20,FOLLOW_20_in_ruleGeneralInst11462); 

                            newLeafNode(lv_unresthalfres_4_0, grammarAccess.getGeneralInst1Access().getUnresthalfresUnresthalfresKeyword_4_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getGeneralInst1Rule());
                    	        }
                           		setWithLastConsumed(current, "unresthalfres", true, "#unresthalfres");
                    	    

                    }


                    }


                    }
                    break;
                case 6 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:598:6: ( (lv_eventisrare_5_0= '#eventisrare' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:598:6: ( (lv_eventisrare_5_0= '#eventisrare' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:599:1: (lv_eventisrare_5_0= '#eventisrare' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:599:1: (lv_eventisrare_5_0= '#eventisrare' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:600:3: lv_eventisrare_5_0= '#eventisrare'
                    {
                    lv_eventisrare_5_0=(Token)match(input,21,FOLLOW_21_in_ruleGeneralInst11499); 

                            newLeafNode(lv_eventisrare_5_0, grammarAccess.getGeneralInst1Access().getEventisrareEventisrareKeyword_5_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getGeneralInst1Rule());
                    	        }
                           		setWithLastConsumed(current, "eventisrare", true, "#eventisrare");
                    	    

                    }


                    }


                    }
                    break;
                case 7 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:614:6: ( (lv_turmoilincome_6_0= '#turmoilincome' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:614:6: ( (lv_turmoilincome_6_0= '#turmoilincome' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:615:1: (lv_turmoilincome_6_0= '#turmoilincome' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:615:1: (lv_turmoilincome_6_0= '#turmoilincome' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:616:3: lv_turmoilincome_6_0= '#turmoilincome'
                    {
                    lv_turmoilincome_6_0=(Token)match(input,22,FOLLOW_22_in_ruleGeneralInst11536); 

                            newLeafNode(lv_turmoilincome_6_0, grammarAccess.getGeneralInst1Access().getTurmoilincomeTurmoilincomeKeyword_6_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getGeneralInst1Rule());
                    	        }
                           		setWithLastConsumed(current, "turmoilincome", true, "#turmoilincome");
                    	    

                    }


                    }


                    }
                    break;
                case 8 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:630:6: ( (lv_turmoilevents_7_0= '#turmoilevents' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:630:6: ( (lv_turmoilevents_7_0= '#turmoilevents' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:631:1: (lv_turmoilevents_7_0= '#turmoilevents' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:631:1: (lv_turmoilevents_7_0= '#turmoilevents' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:632:3: lv_turmoilevents_7_0= '#turmoilevents'
                    {
                    lv_turmoilevents_7_0=(Token)match(input,23,FOLLOW_23_in_ruleGeneralInst11573); 

                            newLeafNode(lv_turmoilevents_7_0, grammarAccess.getGeneralInst1Access().getTurmoileventsTurmoileventsKeyword_7_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getGeneralInst1Rule());
                    	        }
                           		setWithLastConsumed(current, "turmoilevents", true, "#turmoilevents");
                    	    

                    }


                    }


                    }
                    break;
                case 9 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:646:6: ( (lv_deathincome_8_0= '#deathincome' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:646:6: ( (lv_deathincome_8_0= '#deathincome' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:647:1: (lv_deathincome_8_0= '#deathincome' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:647:1: (lv_deathincome_8_0= '#deathincome' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:648:3: lv_deathincome_8_0= '#deathincome'
                    {
                    lv_deathincome_8_0=(Token)match(input,24,FOLLOW_24_in_ruleGeneralInst11610); 

                            newLeafNode(lv_deathincome_8_0, grammarAccess.getGeneralInst1Access().getDeathincomeDeathincomeKeyword_8_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getGeneralInst1Rule());
                    	        }
                           		setWithLastConsumed(current, "deathincome", true, "#deathincome");
                    	    

                    }


                    }


                    }
                    break;
                case 10 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:662:6: ( (lv_deathsupply_9_0= '#deathsupply' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:662:6: ( (lv_deathsupply_9_0= '#deathsupply' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:663:1: (lv_deathsupply_9_0= '#deathsupply' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:663:1: (lv_deathsupply_9_0= '#deathsupply' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:664:3: lv_deathsupply_9_0= '#deathsupply'
                    {
                    lv_deathsupply_9_0=(Token)match(input,25,FOLLOW_25_in_ruleGeneralInst11647); 

                            newLeafNode(lv_deathsupply_9_0, grammarAccess.getGeneralInst1Access().getDeathsupplyDeathsupplyKeyword_9_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getGeneralInst1Rule());
                    	        }
                           		setWithLastConsumed(current, "deathsupply", true, "#deathsupply");
                    	    

                    }


                    }


                    }
                    break;
                case 11 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:678:6: ( (lv_deathdeath_10_0= '#deathdeath' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:678:6: ( (lv_deathdeath_10_0= '#deathdeath' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:679:1: (lv_deathdeath_10_0= '#deathdeath' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:679:1: (lv_deathdeath_10_0= '#deathdeath' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:680:3: lv_deathdeath_10_0= '#deathdeath'
                    {
                    lv_deathdeath_10_0=(Token)match(input,26,FOLLOW_26_in_ruleGeneralInst11684); 

                            newLeafNode(lv_deathdeath_10_0, grammarAccess.getGeneralInst1Access().getDeathdeathDeathdeathKeyword_10_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getGeneralInst1Rule());
                    	        }
                           		setWithLastConsumed(current, "deathdeath", true, "#deathdeath");
                    	    

                    }


                    }


                    }
                    break;
                case 12 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:694:6: ( (lv_slothincome_11_0= '#slothincome' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:694:6: ( (lv_slothincome_11_0= '#slothincome' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:695:1: (lv_slothincome_11_0= '#slothincome' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:695:1: (lv_slothincome_11_0= '#slothincome' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:696:3: lv_slothincome_11_0= '#slothincome'
                    {
                    lv_slothincome_11_0=(Token)match(input,27,FOLLOW_27_in_ruleGeneralInst11721); 

                            newLeafNode(lv_slothincome_11_0, grammarAccess.getGeneralInst1Access().getSlothincomeSlothincomeKeyword_11_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getGeneralInst1Rule());
                    	        }
                           		setWithLastConsumed(current, "slothincome", true, "#slothincome");
                    	    

                    }


                    }


                    }
                    break;
                case 13 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:710:6: ( (lv_slothresources_12_0= '#slothresources' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:710:6: ( (lv_slothresources_12_0= '#slothresources' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:711:1: (lv_slothresources_12_0= '#slothresources' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:711:1: (lv_slothresources_12_0= '#slothresources' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:712:3: lv_slothresources_12_0= '#slothresources'
                    {
                    lv_slothresources_12_0=(Token)match(input,28,FOLLOW_28_in_ruleGeneralInst11758); 

                            newLeafNode(lv_slothresources_12_0, grammarAccess.getGeneralInst1Access().getSlothresourcesSlothresourcesKeyword_12_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getGeneralInst1Rule());
                    	        }
                           		setWithLastConsumed(current, "slothresources", true, "#slothresources");
                    	    

                    }


                    }


                    }
                    break;
                case 14 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:726:6: ( (lv_coldincome_13_0= '#coldincome' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:726:6: ( (lv_coldincome_13_0= '#coldincome' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:727:1: (lv_coldincome_13_0= '#coldincome' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:727:1: (lv_coldincome_13_0= '#coldincome' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:728:3: lv_coldincome_13_0= '#coldincome'
                    {
                    lv_coldincome_13_0=(Token)match(input,29,FOLLOW_29_in_ruleGeneralInst11795); 

                            newLeafNode(lv_coldincome_13_0, grammarAccess.getGeneralInst1Access().getColdincomeColdincomeKeyword_13_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getGeneralInst1Rule());
                    	        }
                           		setWithLastConsumed(current, "coldincome", true, "#coldincome");
                    	    

                    }


                    }


                    }
                    break;
                case 15 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:742:6: ( (lv_coldsupply_14_0= '#coldsupply' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:742:6: ( (lv_coldsupply_14_0= '#coldsupply' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:743:1: (lv_coldsupply_14_0= '#coldsupply' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:743:1: (lv_coldsupply_14_0= '#coldsupply' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:744:3: lv_coldsupply_14_0= '#coldsupply'
                    {
                    lv_coldsupply_14_0=(Token)match(input,30,FOLLOW_30_in_ruleGeneralInst11832); 

                            newLeafNode(lv_coldsupply_14_0, grammarAccess.getGeneralInst1Access().getColdsupplyColdsupplyKeyword_14_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getGeneralInst1Rule());
                    	        }
                           		setWithLastConsumed(current, "coldsupply", true, "#coldsupply");
                    	    

                    }


                    }


                    }
                    break;
                case 16 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:758:6: ( (lv_misfortune_15_0= '#misfortune' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:758:6: ( (lv_misfortune_15_0= '#misfortune' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:759:1: (lv_misfortune_15_0= '#misfortune' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:759:1: (lv_misfortune_15_0= '#misfortune' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:760:3: lv_misfortune_15_0= '#misfortune'
                    {
                    lv_misfortune_15_0=(Token)match(input,31,FOLLOW_31_in_ruleGeneralInst11869); 

                            newLeafNode(lv_misfortune_15_0, grammarAccess.getGeneralInst1Access().getMisfortuneMisfortuneKeyword_15_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getGeneralInst1Rule());
                    	        }
                           		setWithLastConsumed(current, "misfortune", true, "#misfortune");
                    	    

                    }


                    }


                    }
                    break;
                case 17 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:774:6: ( (lv_luckevents_16_0= '#luckevents' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:774:6: ( (lv_luckevents_16_0= '#luckevents' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:775:1: (lv_luckevents_16_0= '#luckevents' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:775:1: (lv_luckevents_16_0= '#luckevents' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:776:3: lv_luckevents_16_0= '#luckevents'
                    {
                    lv_luckevents_16_0=(Token)match(input,32,FOLLOW_32_in_ruleGeneralInst11906); 

                            newLeafNode(lv_luckevents_16_0, grammarAccess.getGeneralInst1Access().getLuckeventsLuckeventsKeyword_16_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getGeneralInst1Rule());
                    	        }
                           		setWithLastConsumed(current, "luckevents", true, "#luckevents");
                    	    

                    }


                    }


                    }
                    break;
                case 18 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:790:6: ( (lv_researchscale_17_0= '#researchscale' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:790:6: ( (lv_researchscale_17_0= '#researchscale' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:791:1: (lv_researchscale_17_0= '#researchscale' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:791:1: (lv_researchscale_17_0= '#researchscale' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:792:3: lv_researchscale_17_0= '#researchscale'
                    {
                    lv_researchscale_17_0=(Token)match(input,33,FOLLOW_33_in_ruleGeneralInst11943); 

                            newLeafNode(lv_researchscale_17_0, grammarAccess.getGeneralInst1Access().getResearchscaleResearchscaleKeyword_17_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getGeneralInst1Rule());
                    	        }
                           		setWithLastConsumed(current, "researchscale", true, "#researchscale");
                    	    

                    }


                    }


                    }
                    break;

            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleGeneralInst1"


    // $ANTLR start "entryRuleArmor"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:813:1: entryRuleArmor returns [EObject current=null] : iv_ruleArmor= ruleArmor EOF ;
    public final EObject entryRuleArmor() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleArmor = null;


        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:814:2: (iv_ruleArmor= ruleArmor EOF )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:815:2: iv_ruleArmor= ruleArmor EOF
            {
             newCompositeNode(grammarAccess.getArmorRule()); 
            pushFollow(FOLLOW_ruleArmor_in_entryRuleArmor1992);
            iv_ruleArmor=ruleArmor();

            state._fsp--;

             current =iv_ruleArmor; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleArmor2002); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleArmor"


    // $ANTLR start "ruleArmor"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:822:1: ruleArmor returns [EObject current=null] : (this_SelectArmorById_0= ruleSelectArmorById | this_SelectArmorByName_1= ruleSelectArmorByName | this_NewArmor_2= ruleNewArmor ) ;
    public final EObject ruleArmor() throws RecognitionException {
        EObject current = null;

        EObject this_SelectArmorById_0 = null;

        EObject this_SelectArmorByName_1 = null;

        EObject this_NewArmor_2 = null;


         enterRule(); 
            
        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:825:28: ( (this_SelectArmorById_0= ruleSelectArmorById | this_SelectArmorByName_1= ruleSelectArmorByName | this_NewArmor_2= ruleNewArmor ) )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:826:1: (this_SelectArmorById_0= ruleSelectArmorById | this_SelectArmorByName_1= ruleSelectArmorByName | this_NewArmor_2= ruleNewArmor )
            {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:826:1: (this_SelectArmorById_0= ruleSelectArmorById | this_SelectArmorByName_1= ruleSelectArmorByName | this_NewArmor_2= ruleNewArmor )
            int alt7=3;
            int LA7_0 = input.LA(1);

            if ( (LA7_0==34) ) {
                int LA7_1 = input.LA(2);

                if ( (LA7_1==RULE_INT) ) {
                    alt7=1;
                }
                else if ( (LA7_1==RULE_STRING) ) {
                    alt7=2;
                }
                else {
                    NoViableAltException nvae =
                        new NoViableAltException("", 7, 1, input);

                    throw nvae;
                }
            }
            else if ( (LA7_0==35) ) {
                alt7=3;
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("", 7, 0, input);

                throw nvae;
            }
            switch (alt7) {
                case 1 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:827:5: this_SelectArmorById_0= ruleSelectArmorById
                    {
                     
                            newCompositeNode(grammarAccess.getArmorAccess().getSelectArmorByIdParserRuleCall_0()); 
                        
                    pushFollow(FOLLOW_ruleSelectArmorById_in_ruleArmor2049);
                    this_SelectArmorById_0=ruleSelectArmorById();

                    state._fsp--;

                     
                            current = this_SelectArmorById_0; 
                            afterParserOrEnumRuleCall();
                        

                    }
                    break;
                case 2 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:837:5: this_SelectArmorByName_1= ruleSelectArmorByName
                    {
                     
                            newCompositeNode(grammarAccess.getArmorAccess().getSelectArmorByNameParserRuleCall_1()); 
                        
                    pushFollow(FOLLOW_ruleSelectArmorByName_in_ruleArmor2076);
                    this_SelectArmorByName_1=ruleSelectArmorByName();

                    state._fsp--;

                     
                            current = this_SelectArmorByName_1; 
                            afterParserOrEnumRuleCall();
                        

                    }
                    break;
                case 3 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:847:5: this_NewArmor_2= ruleNewArmor
                    {
                     
                            newCompositeNode(grammarAccess.getArmorAccess().getNewArmorParserRuleCall_2()); 
                        
                    pushFollow(FOLLOW_ruleNewArmor_in_ruleArmor2103);
                    this_NewArmor_2=ruleNewArmor();

                    state._fsp--;

                     
                            current = this_NewArmor_2; 
                            afterParserOrEnumRuleCall();
                        

                    }
                    break;

            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleArmor"


    // $ANTLR start "entryRuleSelectArmorById"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:863:1: entryRuleSelectArmorById returns [EObject current=null] : iv_ruleSelectArmorById= ruleSelectArmorById EOF ;
    public final EObject entryRuleSelectArmorById() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleSelectArmorById = null;


        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:864:2: (iv_ruleSelectArmorById= ruleSelectArmorById EOF )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:865:2: iv_ruleSelectArmorById= ruleSelectArmorById EOF
            {
             newCompositeNode(grammarAccess.getSelectArmorByIdRule()); 
            pushFollow(FOLLOW_ruleSelectArmorById_in_entryRuleSelectArmorById2138);
            iv_ruleSelectArmorById=ruleSelectArmorById();

            state._fsp--;

             current =iv_ruleSelectArmorById; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleSelectArmorById2148); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleSelectArmorById"


    // $ANTLR start "ruleSelectArmorById"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:872:1: ruleSelectArmorById returns [EObject current=null] : (otherlv_0= '#selectarmor' ( (lv_value_1_0= RULE_INT ) ) (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )* ( (lv_mods_3_0= ruleArmorMods ) )* otherlv_4= '#end' ) ;
    public final EObject ruleSelectArmorById() throws RecognitionException {
        EObject current = null;

        Token otherlv_0=null;
        Token lv_value_1_0=null;
        Token this_FREE_FORM_COMMENT_2=null;
        Token otherlv_4=null;
        EObject lv_mods_3_0 = null;


         enterRule(); 
            
        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:875:28: ( (otherlv_0= '#selectarmor' ( (lv_value_1_0= RULE_INT ) ) (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )* ( (lv_mods_3_0= ruleArmorMods ) )* otherlv_4= '#end' ) )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:876:1: (otherlv_0= '#selectarmor' ( (lv_value_1_0= RULE_INT ) ) (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )* ( (lv_mods_3_0= ruleArmorMods ) )* otherlv_4= '#end' )
            {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:876:1: (otherlv_0= '#selectarmor' ( (lv_value_1_0= RULE_INT ) ) (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )* ( (lv_mods_3_0= ruleArmorMods ) )* otherlv_4= '#end' )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:876:3: otherlv_0= '#selectarmor' ( (lv_value_1_0= RULE_INT ) ) (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )* ( (lv_mods_3_0= ruleArmorMods ) )* otherlv_4= '#end'
            {
            otherlv_0=(Token)match(input,34,FOLLOW_34_in_ruleSelectArmorById2185); 

                	newLeafNode(otherlv_0, grammarAccess.getSelectArmorByIdAccess().getSelectarmorKeyword_0());
                
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:880:1: ( (lv_value_1_0= RULE_INT ) )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:881:1: (lv_value_1_0= RULE_INT )
            {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:881:1: (lv_value_1_0= RULE_INT )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:882:3: lv_value_1_0= RULE_INT
            {
            lv_value_1_0=(Token)match(input,RULE_INT,FOLLOW_RULE_INT_in_ruleSelectArmorById2202); 

            			newLeafNode(lv_value_1_0, grammarAccess.getSelectArmorByIdAccess().getValueINTTerminalRuleCall_1_0()); 
            		

            	        if (current==null) {
            	            current = createModelElement(grammarAccess.getSelectArmorByIdRule());
            	        }
                   		setWithLastConsumed(
                   			current, 
                   			"value",
                    		lv_value_1_0, 
                    		"INT");
            	    

            }


            }

            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:898:2: (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )*
            loop8:
            do {
                int alt8=2;
                int LA8_0 = input.LA(1);

                if ( (LA8_0==RULE_FREE_FORM_COMMENT) ) {
                    alt8=1;
                }


                switch (alt8) {
            	case 1 :
            	    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:898:3: this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT
            	    {
            	    this_FREE_FORM_COMMENT_2=(Token)match(input,RULE_FREE_FORM_COMMENT,FOLLOW_RULE_FREE_FORM_COMMENT_in_ruleSelectArmorById2219); 
            	     
            	        newLeafNode(this_FREE_FORM_COMMENT_2, grammarAccess.getSelectArmorByIdAccess().getFREE_FORM_COMMENTTerminalRuleCall_2()); 
            	        

            	    }
            	    break;

            	default :
            	    break loop8;
                }
            } while (true);

            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:902:3: ( (lv_mods_3_0= ruleArmorMods ) )*
            loop9:
            do {
                int alt9=2;
                int LA9_0 = input.LA(1);

                if ( ((LA9_0>=36 && LA9_0<=41)) ) {
                    alt9=1;
                }


                switch (alt9) {
            	case 1 :
            	    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:903:1: (lv_mods_3_0= ruleArmorMods )
            	    {
            	    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:903:1: (lv_mods_3_0= ruleArmorMods )
            	    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:904:3: lv_mods_3_0= ruleArmorMods
            	    {
            	     
            	    	        newCompositeNode(grammarAccess.getSelectArmorByIdAccess().getModsArmorModsParserRuleCall_3_0()); 
            	    	    
            	    pushFollow(FOLLOW_ruleArmorMods_in_ruleSelectArmorById2241);
            	    lv_mods_3_0=ruleArmorMods();

            	    state._fsp--;


            	    	        if (current==null) {
            	    	            current = createModelElementForParent(grammarAccess.getSelectArmorByIdRule());
            	    	        }
            	           		add(
            	           			current, 
            	           			"mods",
            	            		lv_mods_3_0, 
            	            		"ArmorMods");
            	    	        afterParserOrEnumRuleCall();
            	    	    

            	    }


            	    }
            	    break;

            	default :
            	    break loop9;
                }
            } while (true);

            otherlv_4=(Token)match(input,15,FOLLOW_15_in_ruleSelectArmorById2254); 

                	newLeafNode(otherlv_4, grammarAccess.getSelectArmorByIdAccess().getEndKeyword_4());
                

            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleSelectArmorById"


    // $ANTLR start "entryRuleSelectArmorByName"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:932:1: entryRuleSelectArmorByName returns [EObject current=null] : iv_ruleSelectArmorByName= ruleSelectArmorByName EOF ;
    public final EObject entryRuleSelectArmorByName() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleSelectArmorByName = null;


        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:933:2: (iv_ruleSelectArmorByName= ruleSelectArmorByName EOF )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:934:2: iv_ruleSelectArmorByName= ruleSelectArmorByName EOF
            {
             newCompositeNode(grammarAccess.getSelectArmorByNameRule()); 
            pushFollow(FOLLOW_ruleSelectArmorByName_in_entryRuleSelectArmorByName2290);
            iv_ruleSelectArmorByName=ruleSelectArmorByName();

            state._fsp--;

             current =iv_ruleSelectArmorByName; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleSelectArmorByName2300); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleSelectArmorByName"


    // $ANTLR start "ruleSelectArmorByName"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:941:1: ruleSelectArmorByName returns [EObject current=null] : (otherlv_0= '#selectarmor' ( (lv_value_1_0= RULE_STRING ) ) (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )* ( (lv_mods_3_0= ruleArmorMods ) )* otherlv_4= '#end' ) ;
    public final EObject ruleSelectArmorByName() throws RecognitionException {
        EObject current = null;

        Token otherlv_0=null;
        Token lv_value_1_0=null;
        Token this_FREE_FORM_COMMENT_2=null;
        Token otherlv_4=null;
        EObject lv_mods_3_0 = null;


         enterRule(); 
            
        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:944:28: ( (otherlv_0= '#selectarmor' ( (lv_value_1_0= RULE_STRING ) ) (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )* ( (lv_mods_3_0= ruleArmorMods ) )* otherlv_4= '#end' ) )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:945:1: (otherlv_0= '#selectarmor' ( (lv_value_1_0= RULE_STRING ) ) (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )* ( (lv_mods_3_0= ruleArmorMods ) )* otherlv_4= '#end' )
            {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:945:1: (otherlv_0= '#selectarmor' ( (lv_value_1_0= RULE_STRING ) ) (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )* ( (lv_mods_3_0= ruleArmorMods ) )* otherlv_4= '#end' )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:945:3: otherlv_0= '#selectarmor' ( (lv_value_1_0= RULE_STRING ) ) (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )* ( (lv_mods_3_0= ruleArmorMods ) )* otherlv_4= '#end'
            {
            otherlv_0=(Token)match(input,34,FOLLOW_34_in_ruleSelectArmorByName2337); 

                	newLeafNode(otherlv_0, grammarAccess.getSelectArmorByNameAccess().getSelectarmorKeyword_0());
                
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:949:1: ( (lv_value_1_0= RULE_STRING ) )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:950:1: (lv_value_1_0= RULE_STRING )
            {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:950:1: (lv_value_1_0= RULE_STRING )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:951:3: lv_value_1_0= RULE_STRING
            {
            lv_value_1_0=(Token)match(input,RULE_STRING,FOLLOW_RULE_STRING_in_ruleSelectArmorByName2354); 

            			newLeafNode(lv_value_1_0, grammarAccess.getSelectArmorByNameAccess().getValueSTRINGTerminalRuleCall_1_0()); 
            		

            	        if (current==null) {
            	            current = createModelElement(grammarAccess.getSelectArmorByNameRule());
            	        }
                   		setWithLastConsumed(
                   			current, 
                   			"value",
                    		lv_value_1_0, 
                    		"STRING");
            	    

            }


            }

            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:967:2: (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )*
            loop10:
            do {
                int alt10=2;
                int LA10_0 = input.LA(1);

                if ( (LA10_0==RULE_FREE_FORM_COMMENT) ) {
                    alt10=1;
                }


                switch (alt10) {
            	case 1 :
            	    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:967:3: this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT
            	    {
            	    this_FREE_FORM_COMMENT_2=(Token)match(input,RULE_FREE_FORM_COMMENT,FOLLOW_RULE_FREE_FORM_COMMENT_in_ruleSelectArmorByName2371); 
            	     
            	        newLeafNode(this_FREE_FORM_COMMENT_2, grammarAccess.getSelectArmorByNameAccess().getFREE_FORM_COMMENTTerminalRuleCall_2()); 
            	        

            	    }
            	    break;

            	default :
            	    break loop10;
                }
            } while (true);

            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:971:3: ( (lv_mods_3_0= ruleArmorMods ) )*
            loop11:
            do {
                int alt11=2;
                int LA11_0 = input.LA(1);

                if ( ((LA11_0>=36 && LA11_0<=41)) ) {
                    alt11=1;
                }


                switch (alt11) {
            	case 1 :
            	    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:972:1: (lv_mods_3_0= ruleArmorMods )
            	    {
            	    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:972:1: (lv_mods_3_0= ruleArmorMods )
            	    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:973:3: lv_mods_3_0= ruleArmorMods
            	    {
            	     
            	    	        newCompositeNode(grammarAccess.getSelectArmorByNameAccess().getModsArmorModsParserRuleCall_3_0()); 
            	    	    
            	    pushFollow(FOLLOW_ruleArmorMods_in_ruleSelectArmorByName2393);
            	    lv_mods_3_0=ruleArmorMods();

            	    state._fsp--;


            	    	        if (current==null) {
            	    	            current = createModelElementForParent(grammarAccess.getSelectArmorByNameRule());
            	    	        }
            	           		add(
            	           			current, 
            	           			"mods",
            	            		lv_mods_3_0, 
            	            		"ArmorMods");
            	    	        afterParserOrEnumRuleCall();
            	    	    

            	    }


            	    }
            	    break;

            	default :
            	    break loop11;
                }
            } while (true);

            otherlv_4=(Token)match(input,15,FOLLOW_15_in_ruleSelectArmorByName2406); 

                	newLeafNode(otherlv_4, grammarAccess.getSelectArmorByNameAccess().getEndKeyword_4());
                

            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleSelectArmorByName"


    // $ANTLR start "entryRuleNewArmor"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1001:1: entryRuleNewArmor returns [EObject current=null] : iv_ruleNewArmor= ruleNewArmor EOF ;
    public final EObject entryRuleNewArmor() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleNewArmor = null;


        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1002:2: (iv_ruleNewArmor= ruleNewArmor EOF )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1003:2: iv_ruleNewArmor= ruleNewArmor EOF
            {
             newCompositeNode(grammarAccess.getNewArmorRule()); 
            pushFollow(FOLLOW_ruleNewArmor_in_entryRuleNewArmor2442);
            iv_ruleNewArmor=ruleNewArmor();

            state._fsp--;

             current =iv_ruleNewArmor; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleNewArmor2452); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleNewArmor"


    // $ANTLR start "ruleNewArmor"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1010:1: ruleNewArmor returns [EObject current=null] : (otherlv_0= '#newarmor' ( (lv_value_1_0= RULE_INT ) ) (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )* ( (lv_mods_3_0= ruleArmorMods ) )* otherlv_4= '#end' ) ;
    public final EObject ruleNewArmor() throws RecognitionException {
        EObject current = null;

        Token otherlv_0=null;
        Token lv_value_1_0=null;
        Token this_FREE_FORM_COMMENT_2=null;
        Token otherlv_4=null;
        EObject lv_mods_3_0 = null;


         enterRule(); 
            
        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1013:28: ( (otherlv_0= '#newarmor' ( (lv_value_1_0= RULE_INT ) ) (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )* ( (lv_mods_3_0= ruleArmorMods ) )* otherlv_4= '#end' ) )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1014:1: (otherlv_0= '#newarmor' ( (lv_value_1_0= RULE_INT ) ) (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )* ( (lv_mods_3_0= ruleArmorMods ) )* otherlv_4= '#end' )
            {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1014:1: (otherlv_0= '#newarmor' ( (lv_value_1_0= RULE_INT ) ) (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )* ( (lv_mods_3_0= ruleArmorMods ) )* otherlv_4= '#end' )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1014:3: otherlv_0= '#newarmor' ( (lv_value_1_0= RULE_INT ) ) (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )* ( (lv_mods_3_0= ruleArmorMods ) )* otherlv_4= '#end'
            {
            otherlv_0=(Token)match(input,35,FOLLOW_35_in_ruleNewArmor2489); 

                	newLeafNode(otherlv_0, grammarAccess.getNewArmorAccess().getNewarmorKeyword_0());
                
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1018:1: ( (lv_value_1_0= RULE_INT ) )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1019:1: (lv_value_1_0= RULE_INT )
            {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1019:1: (lv_value_1_0= RULE_INT )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1020:3: lv_value_1_0= RULE_INT
            {
            lv_value_1_0=(Token)match(input,RULE_INT,FOLLOW_RULE_INT_in_ruleNewArmor2506); 

            			newLeafNode(lv_value_1_0, grammarAccess.getNewArmorAccess().getValueINTTerminalRuleCall_1_0()); 
            		

            	        if (current==null) {
            	            current = createModelElement(grammarAccess.getNewArmorRule());
            	        }
                   		setWithLastConsumed(
                   			current, 
                   			"value",
                    		lv_value_1_0, 
                    		"INT");
            	    

            }


            }

            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1036:2: (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )*
            loop12:
            do {
                int alt12=2;
                int LA12_0 = input.LA(1);

                if ( (LA12_0==RULE_FREE_FORM_COMMENT) ) {
                    alt12=1;
                }


                switch (alt12) {
            	case 1 :
            	    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1036:3: this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT
            	    {
            	    this_FREE_FORM_COMMENT_2=(Token)match(input,RULE_FREE_FORM_COMMENT,FOLLOW_RULE_FREE_FORM_COMMENT_in_ruleNewArmor2523); 
            	     
            	        newLeafNode(this_FREE_FORM_COMMENT_2, grammarAccess.getNewArmorAccess().getFREE_FORM_COMMENTTerminalRuleCall_2()); 
            	        

            	    }
            	    break;

            	default :
            	    break loop12;
                }
            } while (true);

            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1040:3: ( (lv_mods_3_0= ruleArmorMods ) )*
            loop13:
            do {
                int alt13=2;
                int LA13_0 = input.LA(1);

                if ( ((LA13_0>=36 && LA13_0<=41)) ) {
                    alt13=1;
                }


                switch (alt13) {
            	case 1 :
            	    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1041:1: (lv_mods_3_0= ruleArmorMods )
            	    {
            	    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1041:1: (lv_mods_3_0= ruleArmorMods )
            	    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1042:3: lv_mods_3_0= ruleArmorMods
            	    {
            	     
            	    	        newCompositeNode(grammarAccess.getNewArmorAccess().getModsArmorModsParserRuleCall_3_0()); 
            	    	    
            	    pushFollow(FOLLOW_ruleArmorMods_in_ruleNewArmor2545);
            	    lv_mods_3_0=ruleArmorMods();

            	    state._fsp--;


            	    	        if (current==null) {
            	    	            current = createModelElementForParent(grammarAccess.getNewArmorRule());
            	    	        }
            	           		add(
            	           			current, 
            	           			"mods",
            	            		lv_mods_3_0, 
            	            		"ArmorMods");
            	    	        afterParserOrEnumRuleCall();
            	    	    

            	    }


            	    }
            	    break;

            	default :
            	    break loop13;
                }
            } while (true);

            otherlv_4=(Token)match(input,15,FOLLOW_15_in_ruleNewArmor2558); 

                	newLeafNode(otherlv_4, grammarAccess.getNewArmorAccess().getEndKeyword_4());
                

            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleNewArmor"


    // $ANTLR start "entryRuleArmorMods"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1070:1: entryRuleArmorMods returns [EObject current=null] : iv_ruleArmorMods= ruleArmorMods EOF ;
    public final EObject entryRuleArmorMods() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleArmorMods = null;


        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1071:2: (iv_ruleArmorMods= ruleArmorMods EOF )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1072:2: iv_ruleArmorMods= ruleArmorMods EOF
            {
             newCompositeNode(grammarAccess.getArmorModsRule()); 
            pushFollow(FOLLOW_ruleArmorMods_in_entryRuleArmorMods2594);
            iv_ruleArmorMods=ruleArmorMods();

            state._fsp--;

             current =iv_ruleArmorMods; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleArmorMods2604); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleArmorMods"


    // $ANTLR start "ruleArmorMods"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1079:1: ruleArmorMods returns [EObject current=null] : (this_ArmorPattern1_0= ruleArmorPattern1 | this_ArmorPattern2_1= ruleArmorPattern2 ) ;
    public final EObject ruleArmorMods() throws RecognitionException {
        EObject current = null;

        EObject this_ArmorPattern1_0 = null;

        EObject this_ArmorPattern2_1 = null;


         enterRule(); 
            
        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1082:28: ( (this_ArmorPattern1_0= ruleArmorPattern1 | this_ArmorPattern2_1= ruleArmorPattern2 ) )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1083:1: (this_ArmorPattern1_0= ruleArmorPattern1 | this_ArmorPattern2_1= ruleArmorPattern2 )
            {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1083:1: (this_ArmorPattern1_0= ruleArmorPattern1 | this_ArmorPattern2_1= ruleArmorPattern2 )
            int alt14=2;
            int LA14_0 = input.LA(1);

            if ( (LA14_0==36) ) {
                alt14=1;
            }
            else if ( ((LA14_0>=37 && LA14_0<=41)) ) {
                alt14=2;
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("", 14, 0, input);

                throw nvae;
            }
            switch (alt14) {
                case 1 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1084:5: this_ArmorPattern1_0= ruleArmorPattern1
                    {
                     
                            newCompositeNode(grammarAccess.getArmorModsAccess().getArmorPattern1ParserRuleCall_0()); 
                        
                    pushFollow(FOLLOW_ruleArmorPattern1_in_ruleArmorMods2651);
                    this_ArmorPattern1_0=ruleArmorPattern1();

                    state._fsp--;

                     
                            current = this_ArmorPattern1_0; 
                            afterParserOrEnumRuleCall();
                        

                    }
                    break;
                case 2 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1094:5: this_ArmorPattern2_1= ruleArmorPattern2
                    {
                     
                            newCompositeNode(grammarAccess.getArmorModsAccess().getArmorPattern2ParserRuleCall_1()); 
                        
                    pushFollow(FOLLOW_ruleArmorPattern2_in_ruleArmorMods2678);
                    this_ArmorPattern2_1=ruleArmorPattern2();

                    state._fsp--;

                     
                            current = this_ArmorPattern2_1; 
                            afterParserOrEnumRuleCall();
                        

                    }
                    break;

            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleArmorMods"


    // $ANTLR start "entryRuleArmorPattern1"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1110:1: entryRuleArmorPattern1 returns [EObject current=null] : iv_ruleArmorPattern1= ruleArmorPattern1 EOF ;
    public final EObject entryRuleArmorPattern1() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleArmorPattern1 = null;


        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1111:2: (iv_ruleArmorPattern1= ruleArmorPattern1 EOF )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1112:2: iv_ruleArmorPattern1= ruleArmorPattern1 EOF
            {
             newCompositeNode(grammarAccess.getArmorPattern1Rule()); 
            pushFollow(FOLLOW_ruleArmorPattern1_in_entryRuleArmorPattern12713);
            iv_ruleArmorPattern1=ruleArmorPattern1();

            state._fsp--;

             current =iv_ruleArmorPattern1; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleArmorPattern12723); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleArmorPattern1"


    // $ANTLR start "ruleArmorPattern1"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1119:1: ruleArmorPattern1 returns [EObject current=null] : (this_ArmorInst1_0= ruleArmorInst1 ( (lv_value_1_0= RULE_STRING ) ) (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )* ) ;
    public final EObject ruleArmorPattern1() throws RecognitionException {
        EObject current = null;

        Token lv_value_1_0=null;
        Token this_FREE_FORM_COMMENT_2=null;
        EObject this_ArmorInst1_0 = null;


         enterRule(); 
            
        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1122:28: ( (this_ArmorInst1_0= ruleArmorInst1 ( (lv_value_1_0= RULE_STRING ) ) (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )* ) )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1123:1: (this_ArmorInst1_0= ruleArmorInst1 ( (lv_value_1_0= RULE_STRING ) ) (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )* )
            {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1123:1: (this_ArmorInst1_0= ruleArmorInst1 ( (lv_value_1_0= RULE_STRING ) ) (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )* )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1124:5: this_ArmorInst1_0= ruleArmorInst1 ( (lv_value_1_0= RULE_STRING ) ) (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )*
            {
             
                    newCompositeNode(grammarAccess.getArmorPattern1Access().getArmorInst1ParserRuleCall_0()); 
                
            pushFollow(FOLLOW_ruleArmorInst1_in_ruleArmorPattern12770);
            this_ArmorInst1_0=ruleArmorInst1();

            state._fsp--;

             
                    current = this_ArmorInst1_0; 
                    afterParserOrEnumRuleCall();
                
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1132:1: ( (lv_value_1_0= RULE_STRING ) )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1133:1: (lv_value_1_0= RULE_STRING )
            {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1133:1: (lv_value_1_0= RULE_STRING )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1134:3: lv_value_1_0= RULE_STRING
            {
            lv_value_1_0=(Token)match(input,RULE_STRING,FOLLOW_RULE_STRING_in_ruleArmorPattern12786); 

            			newLeafNode(lv_value_1_0, grammarAccess.getArmorPattern1Access().getValueSTRINGTerminalRuleCall_1_0()); 
            		

            	        if (current==null) {
            	            current = createModelElement(grammarAccess.getArmorPattern1Rule());
            	        }
                   		setWithLastConsumed(
                   			current, 
                   			"value",
                    		lv_value_1_0, 
                    		"STRING");
            	    

            }


            }

            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1150:2: (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )*
            loop15:
            do {
                int alt15=2;
                int LA15_0 = input.LA(1);

                if ( (LA15_0==RULE_FREE_FORM_COMMENT) ) {
                    alt15=1;
                }


                switch (alt15) {
            	case 1 :
            	    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1150:3: this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT
            	    {
            	    this_FREE_FORM_COMMENT_2=(Token)match(input,RULE_FREE_FORM_COMMENT,FOLLOW_RULE_FREE_FORM_COMMENT_in_ruleArmorPattern12803); 
            	     
            	        newLeafNode(this_FREE_FORM_COMMENT_2, grammarAccess.getArmorPattern1Access().getFREE_FORM_COMMENTTerminalRuleCall_2()); 
            	        

            	    }
            	    break;

            	default :
            	    break loop15;
                }
            } while (true);


            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleArmorPattern1"


    // $ANTLR start "entryRuleArmorPattern2"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1162:1: entryRuleArmorPattern2 returns [EObject current=null] : iv_ruleArmorPattern2= ruleArmorPattern2 EOF ;
    public final EObject entryRuleArmorPattern2() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleArmorPattern2 = null;


        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1163:2: (iv_ruleArmorPattern2= ruleArmorPattern2 EOF )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1164:2: iv_ruleArmorPattern2= ruleArmorPattern2 EOF
            {
             newCompositeNode(grammarAccess.getArmorPattern2Rule()); 
            pushFollow(FOLLOW_ruleArmorPattern2_in_entryRuleArmorPattern22840);
            iv_ruleArmorPattern2=ruleArmorPattern2();

            state._fsp--;

             current =iv_ruleArmorPattern2; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleArmorPattern22850); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleArmorPattern2"


    // $ANTLR start "ruleArmorPattern2"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1171:1: ruleArmorPattern2 returns [EObject current=null] : (this_ArmorInst2_0= ruleArmorInst2 ( (lv_value_1_0= RULE_INT ) ) (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )* ) ;
    public final EObject ruleArmorPattern2() throws RecognitionException {
        EObject current = null;

        Token lv_value_1_0=null;
        Token this_FREE_FORM_COMMENT_2=null;
        EObject this_ArmorInst2_0 = null;


         enterRule(); 
            
        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1174:28: ( (this_ArmorInst2_0= ruleArmorInst2 ( (lv_value_1_0= RULE_INT ) ) (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )* ) )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1175:1: (this_ArmorInst2_0= ruleArmorInst2 ( (lv_value_1_0= RULE_INT ) ) (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )* )
            {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1175:1: (this_ArmorInst2_0= ruleArmorInst2 ( (lv_value_1_0= RULE_INT ) ) (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )* )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1176:5: this_ArmorInst2_0= ruleArmorInst2 ( (lv_value_1_0= RULE_INT ) ) (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )*
            {
             
                    newCompositeNode(grammarAccess.getArmorPattern2Access().getArmorInst2ParserRuleCall_0()); 
                
            pushFollow(FOLLOW_ruleArmorInst2_in_ruleArmorPattern22897);
            this_ArmorInst2_0=ruleArmorInst2();

            state._fsp--;

             
                    current = this_ArmorInst2_0; 
                    afterParserOrEnumRuleCall();
                
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1184:1: ( (lv_value_1_0= RULE_INT ) )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1185:1: (lv_value_1_0= RULE_INT )
            {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1185:1: (lv_value_1_0= RULE_INT )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1186:3: lv_value_1_0= RULE_INT
            {
            lv_value_1_0=(Token)match(input,RULE_INT,FOLLOW_RULE_INT_in_ruleArmorPattern22913); 

            			newLeafNode(lv_value_1_0, grammarAccess.getArmorPattern2Access().getValueINTTerminalRuleCall_1_0()); 
            		

            	        if (current==null) {
            	            current = createModelElement(grammarAccess.getArmorPattern2Rule());
            	        }
                   		setWithLastConsumed(
                   			current, 
                   			"value",
                    		lv_value_1_0, 
                    		"INT");
            	    

            }


            }

            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1202:2: (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )*
            loop16:
            do {
                int alt16=2;
                int LA16_0 = input.LA(1);

                if ( (LA16_0==RULE_FREE_FORM_COMMENT) ) {
                    alt16=1;
                }


                switch (alt16) {
            	case 1 :
            	    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1202:3: this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT
            	    {
            	    this_FREE_FORM_COMMENT_2=(Token)match(input,RULE_FREE_FORM_COMMENT,FOLLOW_RULE_FREE_FORM_COMMENT_in_ruleArmorPattern22930); 
            	     
            	        newLeafNode(this_FREE_FORM_COMMENT_2, grammarAccess.getArmorPattern2Access().getFREE_FORM_COMMENTTerminalRuleCall_2()); 
            	        

            	    }
            	    break;

            	default :
            	    break loop16;
                }
            } while (true);


            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleArmorPattern2"


    // $ANTLR start "entryRuleArmorInst1"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1214:1: entryRuleArmorInst1 returns [EObject current=null] : iv_ruleArmorInst1= ruleArmorInst1 EOF ;
    public final EObject entryRuleArmorInst1() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleArmorInst1 = null;


        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1215:2: (iv_ruleArmorInst1= ruleArmorInst1 EOF )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1216:2: iv_ruleArmorInst1= ruleArmorInst1 EOF
            {
             newCompositeNode(grammarAccess.getArmorInst1Rule()); 
            pushFollow(FOLLOW_ruleArmorInst1_in_entryRuleArmorInst12967);
            iv_ruleArmorInst1=ruleArmorInst1();

            state._fsp--;

             current =iv_ruleArmorInst1; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleArmorInst12977); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleArmorInst1"


    // $ANTLR start "ruleArmorInst1"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1223:1: ruleArmorInst1 returns [EObject current=null] : ( (lv_name_0_0= '#name' ) ) ;
    public final EObject ruleArmorInst1() throws RecognitionException {
        EObject current = null;

        Token lv_name_0_0=null;

         enterRule(); 
            
        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1226:28: ( ( (lv_name_0_0= '#name' ) ) )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1227:1: ( (lv_name_0_0= '#name' ) )
            {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1227:1: ( (lv_name_0_0= '#name' ) )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1228:1: (lv_name_0_0= '#name' )
            {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1228:1: (lv_name_0_0= '#name' )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1229:3: lv_name_0_0= '#name'
            {
            lv_name_0_0=(Token)match(input,36,FOLLOW_36_in_ruleArmorInst13019); 

                    newLeafNode(lv_name_0_0, grammarAccess.getArmorInst1Access().getNameNameKeyword_0());
                

            	        if (current==null) {
            	            current = createModelElement(grammarAccess.getArmorInst1Rule());
            	        }
                   		setWithLastConsumed(current, "name", true, "#name");
            	    

            }


            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleArmorInst1"


    // $ANTLR start "entryRuleArmorInst2"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1250:1: entryRuleArmorInst2 returns [EObject current=null] : iv_ruleArmorInst2= ruleArmorInst2 EOF ;
    public final EObject entryRuleArmorInst2() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleArmorInst2 = null;


        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1251:2: (iv_ruleArmorInst2= ruleArmorInst2 EOF )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1252:2: iv_ruleArmorInst2= ruleArmorInst2 EOF
            {
             newCompositeNode(grammarAccess.getArmorInst2Rule()); 
            pushFollow(FOLLOW_ruleArmorInst2_in_entryRuleArmorInst23067);
            iv_ruleArmorInst2=ruleArmorInst2();

            state._fsp--;

             current =iv_ruleArmorInst2; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleArmorInst23077); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleArmorInst2"


    // $ANTLR start "ruleArmorInst2"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1259:1: ruleArmorInst2 returns [EObject current=null] : ( ( (lv_type_0_0= '#type' ) ) | ( (lv_prot_1_0= '#prot' ) ) | ( (lv_def_2_0= '#def' ) ) | ( (lv_enc_3_0= '#enc' ) ) | ( (lv_rcost_4_0= '#rcost' ) ) ) ;
    public final EObject ruleArmorInst2() throws RecognitionException {
        EObject current = null;

        Token lv_type_0_0=null;
        Token lv_prot_1_0=null;
        Token lv_def_2_0=null;
        Token lv_enc_3_0=null;
        Token lv_rcost_4_0=null;

         enterRule(); 
            
        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1262:28: ( ( ( (lv_type_0_0= '#type' ) ) | ( (lv_prot_1_0= '#prot' ) ) | ( (lv_def_2_0= '#def' ) ) | ( (lv_enc_3_0= '#enc' ) ) | ( (lv_rcost_4_0= '#rcost' ) ) ) )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1263:1: ( ( (lv_type_0_0= '#type' ) ) | ( (lv_prot_1_0= '#prot' ) ) | ( (lv_def_2_0= '#def' ) ) | ( (lv_enc_3_0= '#enc' ) ) | ( (lv_rcost_4_0= '#rcost' ) ) )
            {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1263:1: ( ( (lv_type_0_0= '#type' ) ) | ( (lv_prot_1_0= '#prot' ) ) | ( (lv_def_2_0= '#def' ) ) | ( (lv_enc_3_0= '#enc' ) ) | ( (lv_rcost_4_0= '#rcost' ) ) )
            int alt17=5;
            switch ( input.LA(1) ) {
            case 37:
                {
                alt17=1;
                }
                break;
            case 38:
                {
                alt17=2;
                }
                break;
            case 39:
                {
                alt17=3;
                }
                break;
            case 40:
                {
                alt17=4;
                }
                break;
            case 41:
                {
                alt17=5;
                }
                break;
            default:
                NoViableAltException nvae =
                    new NoViableAltException("", 17, 0, input);

                throw nvae;
            }

            switch (alt17) {
                case 1 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1263:2: ( (lv_type_0_0= '#type' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1263:2: ( (lv_type_0_0= '#type' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1264:1: (lv_type_0_0= '#type' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1264:1: (lv_type_0_0= '#type' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1265:3: lv_type_0_0= '#type'
                    {
                    lv_type_0_0=(Token)match(input,37,FOLLOW_37_in_ruleArmorInst23120); 

                            newLeafNode(lv_type_0_0, grammarAccess.getArmorInst2Access().getTypeTypeKeyword_0_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getArmorInst2Rule());
                    	        }
                           		setWithLastConsumed(current, "type", true, "#type");
                    	    

                    }


                    }


                    }
                    break;
                case 2 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1279:6: ( (lv_prot_1_0= '#prot' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1279:6: ( (lv_prot_1_0= '#prot' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1280:1: (lv_prot_1_0= '#prot' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1280:1: (lv_prot_1_0= '#prot' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1281:3: lv_prot_1_0= '#prot'
                    {
                    lv_prot_1_0=(Token)match(input,38,FOLLOW_38_in_ruleArmorInst23157); 

                            newLeafNode(lv_prot_1_0, grammarAccess.getArmorInst2Access().getProtProtKeyword_1_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getArmorInst2Rule());
                    	        }
                           		setWithLastConsumed(current, "prot", true, "#prot");
                    	    

                    }


                    }


                    }
                    break;
                case 3 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1295:6: ( (lv_def_2_0= '#def' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1295:6: ( (lv_def_2_0= '#def' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1296:1: (lv_def_2_0= '#def' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1296:1: (lv_def_2_0= '#def' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1297:3: lv_def_2_0= '#def'
                    {
                    lv_def_2_0=(Token)match(input,39,FOLLOW_39_in_ruleArmorInst23194); 

                            newLeafNode(lv_def_2_0, grammarAccess.getArmorInst2Access().getDefDefKeyword_2_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getArmorInst2Rule());
                    	        }
                           		setWithLastConsumed(current, "def", true, "#def");
                    	    

                    }


                    }


                    }
                    break;
                case 4 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1311:6: ( (lv_enc_3_0= '#enc' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1311:6: ( (lv_enc_3_0= '#enc' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1312:1: (lv_enc_3_0= '#enc' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1312:1: (lv_enc_3_0= '#enc' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1313:3: lv_enc_3_0= '#enc'
                    {
                    lv_enc_3_0=(Token)match(input,40,FOLLOW_40_in_ruleArmorInst23231); 

                            newLeafNode(lv_enc_3_0, grammarAccess.getArmorInst2Access().getEncEncKeyword_3_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getArmorInst2Rule());
                    	        }
                           		setWithLastConsumed(current, "enc", true, "#enc");
                    	    

                    }


                    }


                    }
                    break;
                case 5 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1327:6: ( (lv_rcost_4_0= '#rcost' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1327:6: ( (lv_rcost_4_0= '#rcost' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1328:1: (lv_rcost_4_0= '#rcost' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1328:1: (lv_rcost_4_0= '#rcost' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1329:3: lv_rcost_4_0= '#rcost'
                    {
                    lv_rcost_4_0=(Token)match(input,41,FOLLOW_41_in_ruleArmorInst23268); 

                            newLeafNode(lv_rcost_4_0, grammarAccess.getArmorInst2Access().getRcostRcostKeyword_4_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getArmorInst2Rule());
                    	        }
                           		setWithLastConsumed(current, "rcost", true, "#rcost");
                    	    

                    }


                    }


                    }
                    break;

            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleArmorInst2"


    // $ANTLR start "entryRuleWeapon"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1350:1: entryRuleWeapon returns [EObject current=null] : iv_ruleWeapon= ruleWeapon EOF ;
    public final EObject entryRuleWeapon() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleWeapon = null;


        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1351:2: (iv_ruleWeapon= ruleWeapon EOF )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1352:2: iv_ruleWeapon= ruleWeapon EOF
            {
             newCompositeNode(grammarAccess.getWeaponRule()); 
            pushFollow(FOLLOW_ruleWeapon_in_entryRuleWeapon3317);
            iv_ruleWeapon=ruleWeapon();

            state._fsp--;

             current =iv_ruleWeapon; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleWeapon3327); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleWeapon"


    // $ANTLR start "ruleWeapon"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1359:1: ruleWeapon returns [EObject current=null] : (this_SelectWeaponById_0= ruleSelectWeaponById | this_SelectWeaponByName_1= ruleSelectWeaponByName | this_NewWeapon_2= ruleNewWeapon ) ;
    public final EObject ruleWeapon() throws RecognitionException {
        EObject current = null;

        EObject this_SelectWeaponById_0 = null;

        EObject this_SelectWeaponByName_1 = null;

        EObject this_NewWeapon_2 = null;


         enterRule(); 
            
        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1362:28: ( (this_SelectWeaponById_0= ruleSelectWeaponById | this_SelectWeaponByName_1= ruleSelectWeaponByName | this_NewWeapon_2= ruleNewWeapon ) )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1363:1: (this_SelectWeaponById_0= ruleSelectWeaponById | this_SelectWeaponByName_1= ruleSelectWeaponByName | this_NewWeapon_2= ruleNewWeapon )
            {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1363:1: (this_SelectWeaponById_0= ruleSelectWeaponById | this_SelectWeaponByName_1= ruleSelectWeaponByName | this_NewWeapon_2= ruleNewWeapon )
            int alt18=3;
            int LA18_0 = input.LA(1);

            if ( (LA18_0==42) ) {
                int LA18_1 = input.LA(2);

                if ( (LA18_1==RULE_INT) ) {
                    alt18=1;
                }
                else if ( (LA18_1==RULE_STRING) ) {
                    alt18=2;
                }
                else {
                    NoViableAltException nvae =
                        new NoViableAltException("", 18, 1, input);

                    throw nvae;
                }
            }
            else if ( (LA18_0==43) ) {
                alt18=3;
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("", 18, 0, input);

                throw nvae;
            }
            switch (alt18) {
                case 1 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1364:5: this_SelectWeaponById_0= ruleSelectWeaponById
                    {
                     
                            newCompositeNode(grammarAccess.getWeaponAccess().getSelectWeaponByIdParserRuleCall_0()); 
                        
                    pushFollow(FOLLOW_ruleSelectWeaponById_in_ruleWeapon3374);
                    this_SelectWeaponById_0=ruleSelectWeaponById();

                    state._fsp--;

                     
                            current = this_SelectWeaponById_0; 
                            afterParserOrEnumRuleCall();
                        

                    }
                    break;
                case 2 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1374:5: this_SelectWeaponByName_1= ruleSelectWeaponByName
                    {
                     
                            newCompositeNode(grammarAccess.getWeaponAccess().getSelectWeaponByNameParserRuleCall_1()); 
                        
                    pushFollow(FOLLOW_ruleSelectWeaponByName_in_ruleWeapon3401);
                    this_SelectWeaponByName_1=ruleSelectWeaponByName();

                    state._fsp--;

                     
                            current = this_SelectWeaponByName_1; 
                            afterParserOrEnumRuleCall();
                        

                    }
                    break;
                case 3 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1384:5: this_NewWeapon_2= ruleNewWeapon
                    {
                     
                            newCompositeNode(grammarAccess.getWeaponAccess().getNewWeaponParserRuleCall_2()); 
                        
                    pushFollow(FOLLOW_ruleNewWeapon_in_ruleWeapon3428);
                    this_NewWeapon_2=ruleNewWeapon();

                    state._fsp--;

                     
                            current = this_NewWeapon_2; 
                            afterParserOrEnumRuleCall();
                        

                    }
                    break;

            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleWeapon"


    // $ANTLR start "entryRuleSelectWeaponById"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1400:1: entryRuleSelectWeaponById returns [EObject current=null] : iv_ruleSelectWeaponById= ruleSelectWeaponById EOF ;
    public final EObject entryRuleSelectWeaponById() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleSelectWeaponById = null;


        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1401:2: (iv_ruleSelectWeaponById= ruleSelectWeaponById EOF )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1402:2: iv_ruleSelectWeaponById= ruleSelectWeaponById EOF
            {
             newCompositeNode(grammarAccess.getSelectWeaponByIdRule()); 
            pushFollow(FOLLOW_ruleSelectWeaponById_in_entryRuleSelectWeaponById3463);
            iv_ruleSelectWeaponById=ruleSelectWeaponById();

            state._fsp--;

             current =iv_ruleSelectWeaponById; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleSelectWeaponById3473); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleSelectWeaponById"


    // $ANTLR start "ruleSelectWeaponById"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1409:1: ruleSelectWeaponById returns [EObject current=null] : (otherlv_0= '#selectweapon' ( (lv_value_1_0= RULE_INT ) ) (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )* ( (lv_mods_3_0= ruleWeaponMods ) )* otherlv_4= '#end' ) ;
    public final EObject ruleSelectWeaponById() throws RecognitionException {
        EObject current = null;

        Token otherlv_0=null;
        Token lv_value_1_0=null;
        Token this_FREE_FORM_COMMENT_2=null;
        Token otherlv_4=null;
        EObject lv_mods_3_0 = null;


         enterRule(); 
            
        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1412:28: ( (otherlv_0= '#selectweapon' ( (lv_value_1_0= RULE_INT ) ) (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )* ( (lv_mods_3_0= ruleWeaponMods ) )* otherlv_4= '#end' ) )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1413:1: (otherlv_0= '#selectweapon' ( (lv_value_1_0= RULE_INT ) ) (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )* ( (lv_mods_3_0= ruleWeaponMods ) )* otherlv_4= '#end' )
            {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1413:1: (otherlv_0= '#selectweapon' ( (lv_value_1_0= RULE_INT ) ) (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )* ( (lv_mods_3_0= ruleWeaponMods ) )* otherlv_4= '#end' )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1413:3: otherlv_0= '#selectweapon' ( (lv_value_1_0= RULE_INT ) ) (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )* ( (lv_mods_3_0= ruleWeaponMods ) )* otherlv_4= '#end'
            {
            otherlv_0=(Token)match(input,42,FOLLOW_42_in_ruleSelectWeaponById3510); 

                	newLeafNode(otherlv_0, grammarAccess.getSelectWeaponByIdAccess().getSelectweaponKeyword_0());
                
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1417:1: ( (lv_value_1_0= RULE_INT ) )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1418:1: (lv_value_1_0= RULE_INT )
            {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1418:1: (lv_value_1_0= RULE_INT )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1419:3: lv_value_1_0= RULE_INT
            {
            lv_value_1_0=(Token)match(input,RULE_INT,FOLLOW_RULE_INT_in_ruleSelectWeaponById3527); 

            			newLeafNode(lv_value_1_0, grammarAccess.getSelectWeaponByIdAccess().getValueINTTerminalRuleCall_1_0()); 
            		

            	        if (current==null) {
            	            current = createModelElement(grammarAccess.getSelectWeaponByIdRule());
            	        }
                   		setWithLastConsumed(
                   			current, 
                   			"value",
                    		lv_value_1_0, 
                    		"INT");
            	    

            }


            }

            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1435:2: (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )*
            loop19:
            do {
                int alt19=2;
                int LA19_0 = input.LA(1);

                if ( (LA19_0==RULE_FREE_FORM_COMMENT) ) {
                    alt19=1;
                }


                switch (alt19) {
            	case 1 :
            	    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1435:3: this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT
            	    {
            	    this_FREE_FORM_COMMENT_2=(Token)match(input,RULE_FREE_FORM_COMMENT,FOLLOW_RULE_FREE_FORM_COMMENT_in_ruleSelectWeaponById3544); 
            	     
            	        newLeafNode(this_FREE_FORM_COMMENT_2, grammarAccess.getSelectWeaponByIdAccess().getFREE_FORM_COMMENTTerminalRuleCall_2()); 
            	        

            	    }
            	    break;

            	default :
            	    break loop19;
                }
            } while (true);

            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1439:3: ( (lv_mods_3_0= ruleWeaponMods ) )*
            loop20:
            do {
                int alt20=2;
                int LA20_0 = input.LA(1);

                if ( (LA20_0==36||LA20_0==39||LA20_0==41||(LA20_0>=44 && LA20_0<=84)) ) {
                    alt20=1;
                }


                switch (alt20) {
            	case 1 :
            	    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1440:1: (lv_mods_3_0= ruleWeaponMods )
            	    {
            	    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1440:1: (lv_mods_3_0= ruleWeaponMods )
            	    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1441:3: lv_mods_3_0= ruleWeaponMods
            	    {
            	     
            	    	        newCompositeNode(grammarAccess.getSelectWeaponByIdAccess().getModsWeaponModsParserRuleCall_3_0()); 
            	    	    
            	    pushFollow(FOLLOW_ruleWeaponMods_in_ruleSelectWeaponById3566);
            	    lv_mods_3_0=ruleWeaponMods();

            	    state._fsp--;


            	    	        if (current==null) {
            	    	            current = createModelElementForParent(grammarAccess.getSelectWeaponByIdRule());
            	    	        }
            	           		add(
            	           			current, 
            	           			"mods",
            	            		lv_mods_3_0, 
            	            		"WeaponMods");
            	    	        afterParserOrEnumRuleCall();
            	    	    

            	    }


            	    }
            	    break;

            	default :
            	    break loop20;
                }
            } while (true);

            otherlv_4=(Token)match(input,15,FOLLOW_15_in_ruleSelectWeaponById3579); 

                	newLeafNode(otherlv_4, grammarAccess.getSelectWeaponByIdAccess().getEndKeyword_4());
                

            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleSelectWeaponById"


    // $ANTLR start "entryRuleSelectWeaponByName"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1469:1: entryRuleSelectWeaponByName returns [EObject current=null] : iv_ruleSelectWeaponByName= ruleSelectWeaponByName EOF ;
    public final EObject entryRuleSelectWeaponByName() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleSelectWeaponByName = null;


        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1470:2: (iv_ruleSelectWeaponByName= ruleSelectWeaponByName EOF )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1471:2: iv_ruleSelectWeaponByName= ruleSelectWeaponByName EOF
            {
             newCompositeNode(grammarAccess.getSelectWeaponByNameRule()); 
            pushFollow(FOLLOW_ruleSelectWeaponByName_in_entryRuleSelectWeaponByName3615);
            iv_ruleSelectWeaponByName=ruleSelectWeaponByName();

            state._fsp--;

             current =iv_ruleSelectWeaponByName; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleSelectWeaponByName3625); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleSelectWeaponByName"


    // $ANTLR start "ruleSelectWeaponByName"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1478:1: ruleSelectWeaponByName returns [EObject current=null] : (otherlv_0= '#selectweapon' ( (lv_value_1_0= RULE_STRING ) ) (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )* ( (lv_mods_3_0= ruleWeaponMods ) )* otherlv_4= '#end' ) ;
    public final EObject ruleSelectWeaponByName() throws RecognitionException {
        EObject current = null;

        Token otherlv_0=null;
        Token lv_value_1_0=null;
        Token this_FREE_FORM_COMMENT_2=null;
        Token otherlv_4=null;
        EObject lv_mods_3_0 = null;


         enterRule(); 
            
        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1481:28: ( (otherlv_0= '#selectweapon' ( (lv_value_1_0= RULE_STRING ) ) (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )* ( (lv_mods_3_0= ruleWeaponMods ) )* otherlv_4= '#end' ) )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1482:1: (otherlv_0= '#selectweapon' ( (lv_value_1_0= RULE_STRING ) ) (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )* ( (lv_mods_3_0= ruleWeaponMods ) )* otherlv_4= '#end' )
            {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1482:1: (otherlv_0= '#selectweapon' ( (lv_value_1_0= RULE_STRING ) ) (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )* ( (lv_mods_3_0= ruleWeaponMods ) )* otherlv_4= '#end' )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1482:3: otherlv_0= '#selectweapon' ( (lv_value_1_0= RULE_STRING ) ) (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )* ( (lv_mods_3_0= ruleWeaponMods ) )* otherlv_4= '#end'
            {
            otherlv_0=(Token)match(input,42,FOLLOW_42_in_ruleSelectWeaponByName3662); 

                	newLeafNode(otherlv_0, grammarAccess.getSelectWeaponByNameAccess().getSelectweaponKeyword_0());
                
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1486:1: ( (lv_value_1_0= RULE_STRING ) )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1487:1: (lv_value_1_0= RULE_STRING )
            {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1487:1: (lv_value_1_0= RULE_STRING )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1488:3: lv_value_1_0= RULE_STRING
            {
            lv_value_1_0=(Token)match(input,RULE_STRING,FOLLOW_RULE_STRING_in_ruleSelectWeaponByName3679); 

            			newLeafNode(lv_value_1_0, grammarAccess.getSelectWeaponByNameAccess().getValueSTRINGTerminalRuleCall_1_0()); 
            		

            	        if (current==null) {
            	            current = createModelElement(grammarAccess.getSelectWeaponByNameRule());
            	        }
                   		setWithLastConsumed(
                   			current, 
                   			"value",
                    		lv_value_1_0, 
                    		"STRING");
            	    

            }


            }

            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1504:2: (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )*
            loop21:
            do {
                int alt21=2;
                int LA21_0 = input.LA(1);

                if ( (LA21_0==RULE_FREE_FORM_COMMENT) ) {
                    alt21=1;
                }


                switch (alt21) {
            	case 1 :
            	    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1504:3: this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT
            	    {
            	    this_FREE_FORM_COMMENT_2=(Token)match(input,RULE_FREE_FORM_COMMENT,FOLLOW_RULE_FREE_FORM_COMMENT_in_ruleSelectWeaponByName3696); 
            	     
            	        newLeafNode(this_FREE_FORM_COMMENT_2, grammarAccess.getSelectWeaponByNameAccess().getFREE_FORM_COMMENTTerminalRuleCall_2()); 
            	        

            	    }
            	    break;

            	default :
            	    break loop21;
                }
            } while (true);

            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1508:3: ( (lv_mods_3_0= ruleWeaponMods ) )*
            loop22:
            do {
                int alt22=2;
                int LA22_0 = input.LA(1);

                if ( (LA22_0==36||LA22_0==39||LA22_0==41||(LA22_0>=44 && LA22_0<=84)) ) {
                    alt22=1;
                }


                switch (alt22) {
            	case 1 :
            	    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1509:1: (lv_mods_3_0= ruleWeaponMods )
            	    {
            	    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1509:1: (lv_mods_3_0= ruleWeaponMods )
            	    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1510:3: lv_mods_3_0= ruleWeaponMods
            	    {
            	     
            	    	        newCompositeNode(grammarAccess.getSelectWeaponByNameAccess().getModsWeaponModsParserRuleCall_3_0()); 
            	    	    
            	    pushFollow(FOLLOW_ruleWeaponMods_in_ruleSelectWeaponByName3718);
            	    lv_mods_3_0=ruleWeaponMods();

            	    state._fsp--;


            	    	        if (current==null) {
            	    	            current = createModelElementForParent(grammarAccess.getSelectWeaponByNameRule());
            	    	        }
            	           		add(
            	           			current, 
            	           			"mods",
            	            		lv_mods_3_0, 
            	            		"WeaponMods");
            	    	        afterParserOrEnumRuleCall();
            	    	    

            	    }


            	    }
            	    break;

            	default :
            	    break loop22;
                }
            } while (true);

            otherlv_4=(Token)match(input,15,FOLLOW_15_in_ruleSelectWeaponByName3731); 

                	newLeafNode(otherlv_4, grammarAccess.getSelectWeaponByNameAccess().getEndKeyword_4());
                

            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleSelectWeaponByName"


    // $ANTLR start "entryRuleNewWeapon"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1538:1: entryRuleNewWeapon returns [EObject current=null] : iv_ruleNewWeapon= ruleNewWeapon EOF ;
    public final EObject entryRuleNewWeapon() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleNewWeapon = null;


        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1539:2: (iv_ruleNewWeapon= ruleNewWeapon EOF )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1540:2: iv_ruleNewWeapon= ruleNewWeapon EOF
            {
             newCompositeNode(grammarAccess.getNewWeaponRule()); 
            pushFollow(FOLLOW_ruleNewWeapon_in_entryRuleNewWeapon3767);
            iv_ruleNewWeapon=ruleNewWeapon();

            state._fsp--;

             current =iv_ruleNewWeapon; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleNewWeapon3777); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleNewWeapon"


    // $ANTLR start "ruleNewWeapon"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1547:1: ruleNewWeapon returns [EObject current=null] : (otherlv_0= '#newweapon' ( (lv_value_1_0= RULE_INT ) ) (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )* ( (lv_mods_3_0= ruleWeaponMods ) )* otherlv_4= '#end' ) ;
    public final EObject ruleNewWeapon() throws RecognitionException {
        EObject current = null;

        Token otherlv_0=null;
        Token lv_value_1_0=null;
        Token this_FREE_FORM_COMMENT_2=null;
        Token otherlv_4=null;
        EObject lv_mods_3_0 = null;


         enterRule(); 
            
        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1550:28: ( (otherlv_0= '#newweapon' ( (lv_value_1_0= RULE_INT ) ) (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )* ( (lv_mods_3_0= ruleWeaponMods ) )* otherlv_4= '#end' ) )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1551:1: (otherlv_0= '#newweapon' ( (lv_value_1_0= RULE_INT ) ) (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )* ( (lv_mods_3_0= ruleWeaponMods ) )* otherlv_4= '#end' )
            {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1551:1: (otherlv_0= '#newweapon' ( (lv_value_1_0= RULE_INT ) ) (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )* ( (lv_mods_3_0= ruleWeaponMods ) )* otherlv_4= '#end' )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1551:3: otherlv_0= '#newweapon' ( (lv_value_1_0= RULE_INT ) ) (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )* ( (lv_mods_3_0= ruleWeaponMods ) )* otherlv_4= '#end'
            {
            otherlv_0=(Token)match(input,43,FOLLOW_43_in_ruleNewWeapon3814); 

                	newLeafNode(otherlv_0, grammarAccess.getNewWeaponAccess().getNewweaponKeyword_0());
                
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1555:1: ( (lv_value_1_0= RULE_INT ) )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1556:1: (lv_value_1_0= RULE_INT )
            {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1556:1: (lv_value_1_0= RULE_INT )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1557:3: lv_value_1_0= RULE_INT
            {
            lv_value_1_0=(Token)match(input,RULE_INT,FOLLOW_RULE_INT_in_ruleNewWeapon3831); 

            			newLeafNode(lv_value_1_0, grammarAccess.getNewWeaponAccess().getValueINTTerminalRuleCall_1_0()); 
            		

            	        if (current==null) {
            	            current = createModelElement(grammarAccess.getNewWeaponRule());
            	        }
                   		setWithLastConsumed(
                   			current, 
                   			"value",
                    		lv_value_1_0, 
                    		"INT");
            	    

            }


            }

            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1573:2: (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )*
            loop23:
            do {
                int alt23=2;
                int LA23_0 = input.LA(1);

                if ( (LA23_0==RULE_FREE_FORM_COMMENT) ) {
                    alt23=1;
                }


                switch (alt23) {
            	case 1 :
            	    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1573:3: this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT
            	    {
            	    this_FREE_FORM_COMMENT_2=(Token)match(input,RULE_FREE_FORM_COMMENT,FOLLOW_RULE_FREE_FORM_COMMENT_in_ruleNewWeapon3848); 
            	     
            	        newLeafNode(this_FREE_FORM_COMMENT_2, grammarAccess.getNewWeaponAccess().getFREE_FORM_COMMENTTerminalRuleCall_2()); 
            	        

            	    }
            	    break;

            	default :
            	    break loop23;
                }
            } while (true);

            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1577:3: ( (lv_mods_3_0= ruleWeaponMods ) )*
            loop24:
            do {
                int alt24=2;
                int LA24_0 = input.LA(1);

                if ( (LA24_0==36||LA24_0==39||LA24_0==41||(LA24_0>=44 && LA24_0<=84)) ) {
                    alt24=1;
                }


                switch (alt24) {
            	case 1 :
            	    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1578:1: (lv_mods_3_0= ruleWeaponMods )
            	    {
            	    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1578:1: (lv_mods_3_0= ruleWeaponMods )
            	    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1579:3: lv_mods_3_0= ruleWeaponMods
            	    {
            	     
            	    	        newCompositeNode(grammarAccess.getNewWeaponAccess().getModsWeaponModsParserRuleCall_3_0()); 
            	    	    
            	    pushFollow(FOLLOW_ruleWeaponMods_in_ruleNewWeapon3870);
            	    lv_mods_3_0=ruleWeaponMods();

            	    state._fsp--;


            	    	        if (current==null) {
            	    	            current = createModelElementForParent(grammarAccess.getNewWeaponRule());
            	    	        }
            	           		add(
            	           			current, 
            	           			"mods",
            	            		lv_mods_3_0, 
            	            		"WeaponMods");
            	    	        afterParserOrEnumRuleCall();
            	    	    

            	    }


            	    }
            	    break;

            	default :
            	    break loop24;
                }
            } while (true);

            otherlv_4=(Token)match(input,15,FOLLOW_15_in_ruleNewWeapon3883); 

                	newLeafNode(otherlv_4, grammarAccess.getNewWeaponAccess().getEndKeyword_4());
                

            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleNewWeapon"


    // $ANTLR start "entryRuleWeaponMods"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1607:1: entryRuleWeaponMods returns [EObject current=null] : iv_ruleWeaponMods= ruleWeaponMods EOF ;
    public final EObject entryRuleWeaponMods() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleWeaponMods = null;


        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1608:2: (iv_ruleWeaponMods= ruleWeaponMods EOF )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1609:2: iv_ruleWeaponMods= ruleWeaponMods EOF
            {
             newCompositeNode(grammarAccess.getWeaponModsRule()); 
            pushFollow(FOLLOW_ruleWeaponMods_in_entryRuleWeaponMods3919);
            iv_ruleWeaponMods=ruleWeaponMods();

            state._fsp--;

             current =iv_ruleWeaponMods; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleWeaponMods3929); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleWeaponMods"


    // $ANTLR start "ruleWeaponMods"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1616:1: ruleWeaponMods returns [EObject current=null] : (this_WeaponPattern1_0= ruleWeaponPattern1 | this_WeaponPattern2_1= ruleWeaponPattern2 | this_WeaponPattern3_2= ruleWeaponPattern3 | this_WeaponPattern4_3= ruleWeaponPattern4 ) ;
    public final EObject ruleWeaponMods() throws RecognitionException {
        EObject current = null;

        EObject this_WeaponPattern1_0 = null;

        EObject this_WeaponPattern2_1 = null;

        EObject this_WeaponPattern3_2 = null;

        EObject this_WeaponPattern4_3 = null;


         enterRule(); 
            
        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1619:28: ( (this_WeaponPattern1_0= ruleWeaponPattern1 | this_WeaponPattern2_1= ruleWeaponPattern2 | this_WeaponPattern3_2= ruleWeaponPattern3 | this_WeaponPattern4_3= ruleWeaponPattern4 ) )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1620:1: (this_WeaponPattern1_0= ruleWeaponPattern1 | this_WeaponPattern2_1= ruleWeaponPattern2 | this_WeaponPattern3_2= ruleWeaponPattern3 | this_WeaponPattern4_3= ruleWeaponPattern4 )
            {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1620:1: (this_WeaponPattern1_0= ruleWeaponPattern1 | this_WeaponPattern2_1= ruleWeaponPattern2 | this_WeaponPattern3_2= ruleWeaponPattern3 | this_WeaponPattern4_3= ruleWeaponPattern4 )
            int alt25=4;
            switch ( input.LA(1) ) {
            case 36:
                {
                alt25=1;
                }
                break;
            case 39:
            case 41:
            case 44:
            case 45:
            case 46:
            case 47:
            case 48:
            case 49:
            case 50:
            case 51:
            case 52:
            case 53:
            case 54:
                {
                alt25=2;
                }
                break;
            case 55:
                {
                alt25=3;
                }
                break;
            case 56:
            case 57:
            case 58:
            case 59:
            case 60:
            case 61:
            case 62:
            case 63:
            case 64:
            case 65:
            case 66:
            case 67:
            case 68:
            case 69:
            case 70:
            case 71:
            case 72:
            case 73:
            case 74:
            case 75:
            case 76:
            case 77:
            case 78:
            case 79:
            case 80:
            case 81:
            case 82:
            case 83:
            case 84:
                {
                alt25=4;
                }
                break;
            default:
                NoViableAltException nvae =
                    new NoViableAltException("", 25, 0, input);

                throw nvae;
            }

            switch (alt25) {
                case 1 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1621:5: this_WeaponPattern1_0= ruleWeaponPattern1
                    {
                     
                            newCompositeNode(grammarAccess.getWeaponModsAccess().getWeaponPattern1ParserRuleCall_0()); 
                        
                    pushFollow(FOLLOW_ruleWeaponPattern1_in_ruleWeaponMods3976);
                    this_WeaponPattern1_0=ruleWeaponPattern1();

                    state._fsp--;

                     
                            current = this_WeaponPattern1_0; 
                            afterParserOrEnumRuleCall();
                        

                    }
                    break;
                case 2 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1631:5: this_WeaponPattern2_1= ruleWeaponPattern2
                    {
                     
                            newCompositeNode(grammarAccess.getWeaponModsAccess().getWeaponPattern2ParserRuleCall_1()); 
                        
                    pushFollow(FOLLOW_ruleWeaponPattern2_in_ruleWeaponMods4003);
                    this_WeaponPattern2_1=ruleWeaponPattern2();

                    state._fsp--;

                     
                            current = this_WeaponPattern2_1; 
                            afterParserOrEnumRuleCall();
                        

                    }
                    break;
                case 3 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1641:5: this_WeaponPattern3_2= ruleWeaponPattern3
                    {
                     
                            newCompositeNode(grammarAccess.getWeaponModsAccess().getWeaponPattern3ParserRuleCall_2()); 
                        
                    pushFollow(FOLLOW_ruleWeaponPattern3_in_ruleWeaponMods4030);
                    this_WeaponPattern3_2=ruleWeaponPattern3();

                    state._fsp--;

                     
                            current = this_WeaponPattern3_2; 
                            afterParserOrEnumRuleCall();
                        

                    }
                    break;
                case 4 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1651:5: this_WeaponPattern4_3= ruleWeaponPattern4
                    {
                     
                            newCompositeNode(grammarAccess.getWeaponModsAccess().getWeaponPattern4ParserRuleCall_3()); 
                        
                    pushFollow(FOLLOW_ruleWeaponPattern4_in_ruleWeaponMods4057);
                    this_WeaponPattern4_3=ruleWeaponPattern4();

                    state._fsp--;

                     
                            current = this_WeaponPattern4_3; 
                            afterParserOrEnumRuleCall();
                        

                    }
                    break;

            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleWeaponMods"


    // $ANTLR start "entryRuleWeaponPattern1"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1667:1: entryRuleWeaponPattern1 returns [EObject current=null] : iv_ruleWeaponPattern1= ruleWeaponPattern1 EOF ;
    public final EObject entryRuleWeaponPattern1() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleWeaponPattern1 = null;


        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1668:2: (iv_ruleWeaponPattern1= ruleWeaponPattern1 EOF )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1669:2: iv_ruleWeaponPattern1= ruleWeaponPattern1 EOF
            {
             newCompositeNode(grammarAccess.getWeaponPattern1Rule()); 
            pushFollow(FOLLOW_ruleWeaponPattern1_in_entryRuleWeaponPattern14092);
            iv_ruleWeaponPattern1=ruleWeaponPattern1();

            state._fsp--;

             current =iv_ruleWeaponPattern1; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleWeaponPattern14102); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleWeaponPattern1"


    // $ANTLR start "ruleWeaponPattern1"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1676:1: ruleWeaponPattern1 returns [EObject current=null] : (this_WeaponInst1_0= ruleWeaponInst1 ( (lv_value_1_0= RULE_STRING ) ) (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )* ) ;
    public final EObject ruleWeaponPattern1() throws RecognitionException {
        EObject current = null;

        Token lv_value_1_0=null;
        Token this_FREE_FORM_COMMENT_2=null;
        EObject this_WeaponInst1_0 = null;


         enterRule(); 
            
        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1679:28: ( (this_WeaponInst1_0= ruleWeaponInst1 ( (lv_value_1_0= RULE_STRING ) ) (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )* ) )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1680:1: (this_WeaponInst1_0= ruleWeaponInst1 ( (lv_value_1_0= RULE_STRING ) ) (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )* )
            {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1680:1: (this_WeaponInst1_0= ruleWeaponInst1 ( (lv_value_1_0= RULE_STRING ) ) (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )* )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1681:5: this_WeaponInst1_0= ruleWeaponInst1 ( (lv_value_1_0= RULE_STRING ) ) (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )*
            {
             
                    newCompositeNode(grammarAccess.getWeaponPattern1Access().getWeaponInst1ParserRuleCall_0()); 
                
            pushFollow(FOLLOW_ruleWeaponInst1_in_ruleWeaponPattern14149);
            this_WeaponInst1_0=ruleWeaponInst1();

            state._fsp--;

             
                    current = this_WeaponInst1_0; 
                    afterParserOrEnumRuleCall();
                
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1689:1: ( (lv_value_1_0= RULE_STRING ) )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1690:1: (lv_value_1_0= RULE_STRING )
            {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1690:1: (lv_value_1_0= RULE_STRING )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1691:3: lv_value_1_0= RULE_STRING
            {
            lv_value_1_0=(Token)match(input,RULE_STRING,FOLLOW_RULE_STRING_in_ruleWeaponPattern14165); 

            			newLeafNode(lv_value_1_0, grammarAccess.getWeaponPattern1Access().getValueSTRINGTerminalRuleCall_1_0()); 
            		

            	        if (current==null) {
            	            current = createModelElement(grammarAccess.getWeaponPattern1Rule());
            	        }
                   		setWithLastConsumed(
                   			current, 
                   			"value",
                    		lv_value_1_0, 
                    		"STRING");
            	    

            }


            }

            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1707:2: (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )*
            loop26:
            do {
                int alt26=2;
                int LA26_0 = input.LA(1);

                if ( (LA26_0==RULE_FREE_FORM_COMMENT) ) {
                    alt26=1;
                }


                switch (alt26) {
            	case 1 :
            	    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1707:3: this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT
            	    {
            	    this_FREE_FORM_COMMENT_2=(Token)match(input,RULE_FREE_FORM_COMMENT,FOLLOW_RULE_FREE_FORM_COMMENT_in_ruleWeaponPattern14182); 
            	     
            	        newLeafNode(this_FREE_FORM_COMMENT_2, grammarAccess.getWeaponPattern1Access().getFREE_FORM_COMMENTTerminalRuleCall_2()); 
            	        

            	    }
            	    break;

            	default :
            	    break loop26;
                }
            } while (true);


            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleWeaponPattern1"


    // $ANTLR start "entryRuleWeaponPattern2"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1719:1: entryRuleWeaponPattern2 returns [EObject current=null] : iv_ruleWeaponPattern2= ruleWeaponPattern2 EOF ;
    public final EObject entryRuleWeaponPattern2() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleWeaponPattern2 = null;


        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1720:2: (iv_ruleWeaponPattern2= ruleWeaponPattern2 EOF )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1721:2: iv_ruleWeaponPattern2= ruleWeaponPattern2 EOF
            {
             newCompositeNode(grammarAccess.getWeaponPattern2Rule()); 
            pushFollow(FOLLOW_ruleWeaponPattern2_in_entryRuleWeaponPattern24219);
            iv_ruleWeaponPattern2=ruleWeaponPattern2();

            state._fsp--;

             current =iv_ruleWeaponPattern2; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleWeaponPattern24229); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleWeaponPattern2"


    // $ANTLR start "ruleWeaponPattern2"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1728:1: ruleWeaponPattern2 returns [EObject current=null] : (this_WeaponInst2_0= ruleWeaponInst2 ( (lv_value_1_0= RULE_INT ) ) (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )* ) ;
    public final EObject ruleWeaponPattern2() throws RecognitionException {
        EObject current = null;

        Token lv_value_1_0=null;
        Token this_FREE_FORM_COMMENT_2=null;
        EObject this_WeaponInst2_0 = null;


         enterRule(); 
            
        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1731:28: ( (this_WeaponInst2_0= ruleWeaponInst2 ( (lv_value_1_0= RULE_INT ) ) (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )* ) )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1732:1: (this_WeaponInst2_0= ruleWeaponInst2 ( (lv_value_1_0= RULE_INT ) ) (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )* )
            {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1732:1: (this_WeaponInst2_0= ruleWeaponInst2 ( (lv_value_1_0= RULE_INT ) ) (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )* )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1733:5: this_WeaponInst2_0= ruleWeaponInst2 ( (lv_value_1_0= RULE_INT ) ) (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )*
            {
             
                    newCompositeNode(grammarAccess.getWeaponPattern2Access().getWeaponInst2ParserRuleCall_0()); 
                
            pushFollow(FOLLOW_ruleWeaponInst2_in_ruleWeaponPattern24276);
            this_WeaponInst2_0=ruleWeaponInst2();

            state._fsp--;

             
                    current = this_WeaponInst2_0; 
                    afterParserOrEnumRuleCall();
                
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1741:1: ( (lv_value_1_0= RULE_INT ) )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1742:1: (lv_value_1_0= RULE_INT )
            {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1742:1: (lv_value_1_0= RULE_INT )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1743:3: lv_value_1_0= RULE_INT
            {
            lv_value_1_0=(Token)match(input,RULE_INT,FOLLOW_RULE_INT_in_ruleWeaponPattern24292); 

            			newLeafNode(lv_value_1_0, grammarAccess.getWeaponPattern2Access().getValueINTTerminalRuleCall_1_0()); 
            		

            	        if (current==null) {
            	            current = createModelElement(grammarAccess.getWeaponPattern2Rule());
            	        }
                   		setWithLastConsumed(
                   			current, 
                   			"value",
                    		lv_value_1_0, 
                    		"INT");
            	    

            }


            }

            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1759:2: (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )*
            loop27:
            do {
                int alt27=2;
                int LA27_0 = input.LA(1);

                if ( (LA27_0==RULE_FREE_FORM_COMMENT) ) {
                    alt27=1;
                }


                switch (alt27) {
            	case 1 :
            	    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1759:3: this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT
            	    {
            	    this_FREE_FORM_COMMENT_2=(Token)match(input,RULE_FREE_FORM_COMMENT,FOLLOW_RULE_FREE_FORM_COMMENT_in_ruleWeaponPattern24309); 
            	     
            	        newLeafNode(this_FREE_FORM_COMMENT_2, grammarAccess.getWeaponPattern2Access().getFREE_FORM_COMMENTTerminalRuleCall_2()); 
            	        

            	    }
            	    break;

            	default :
            	    break loop27;
                }
            } while (true);


            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleWeaponPattern2"


    // $ANTLR start "entryRuleWeaponPattern3"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1771:1: entryRuleWeaponPattern3 returns [EObject current=null] : iv_ruleWeaponPattern3= ruleWeaponPattern3 EOF ;
    public final EObject entryRuleWeaponPattern3() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleWeaponPattern3 = null;


        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1772:2: (iv_ruleWeaponPattern3= ruleWeaponPattern3 EOF )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1773:2: iv_ruleWeaponPattern3= ruleWeaponPattern3 EOF
            {
             newCompositeNode(grammarAccess.getWeaponPattern3Rule()); 
            pushFollow(FOLLOW_ruleWeaponPattern3_in_entryRuleWeaponPattern34346);
            iv_ruleWeaponPattern3=ruleWeaponPattern3();

            state._fsp--;

             current =iv_ruleWeaponPattern3; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleWeaponPattern34356); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleWeaponPattern3"


    // $ANTLR start "ruleWeaponPattern3"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1780:1: ruleWeaponPattern3 returns [EObject current=null] : (this_WeaponInst3_0= ruleWeaponInst3 ( (lv_value1_1_0= RULE_INT ) ) ( (lv_value2_2_0= RULE_INT ) )? (this_FREE_FORM_COMMENT_3= RULE_FREE_FORM_COMMENT )* ) ;
    public final EObject ruleWeaponPattern3() throws RecognitionException {
        EObject current = null;

        Token lv_value1_1_0=null;
        Token lv_value2_2_0=null;
        Token this_FREE_FORM_COMMENT_3=null;
        EObject this_WeaponInst3_0 = null;


         enterRule(); 
            
        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1783:28: ( (this_WeaponInst3_0= ruleWeaponInst3 ( (lv_value1_1_0= RULE_INT ) ) ( (lv_value2_2_0= RULE_INT ) )? (this_FREE_FORM_COMMENT_3= RULE_FREE_FORM_COMMENT )* ) )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1784:1: (this_WeaponInst3_0= ruleWeaponInst3 ( (lv_value1_1_0= RULE_INT ) ) ( (lv_value2_2_0= RULE_INT ) )? (this_FREE_FORM_COMMENT_3= RULE_FREE_FORM_COMMENT )* )
            {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1784:1: (this_WeaponInst3_0= ruleWeaponInst3 ( (lv_value1_1_0= RULE_INT ) ) ( (lv_value2_2_0= RULE_INT ) )? (this_FREE_FORM_COMMENT_3= RULE_FREE_FORM_COMMENT )* )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1785:5: this_WeaponInst3_0= ruleWeaponInst3 ( (lv_value1_1_0= RULE_INT ) ) ( (lv_value2_2_0= RULE_INT ) )? (this_FREE_FORM_COMMENT_3= RULE_FREE_FORM_COMMENT )*
            {
             
                    newCompositeNode(grammarAccess.getWeaponPattern3Access().getWeaponInst3ParserRuleCall_0()); 
                
            pushFollow(FOLLOW_ruleWeaponInst3_in_ruleWeaponPattern34403);
            this_WeaponInst3_0=ruleWeaponInst3();

            state._fsp--;

             
                    current = this_WeaponInst3_0; 
                    afterParserOrEnumRuleCall();
                
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1793:1: ( (lv_value1_1_0= RULE_INT ) )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1794:1: (lv_value1_1_0= RULE_INT )
            {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1794:1: (lv_value1_1_0= RULE_INT )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1795:3: lv_value1_1_0= RULE_INT
            {
            lv_value1_1_0=(Token)match(input,RULE_INT,FOLLOW_RULE_INT_in_ruleWeaponPattern34419); 

            			newLeafNode(lv_value1_1_0, grammarAccess.getWeaponPattern3Access().getValue1INTTerminalRuleCall_1_0()); 
            		

            	        if (current==null) {
            	            current = createModelElement(grammarAccess.getWeaponPattern3Rule());
            	        }
                   		setWithLastConsumed(
                   			current, 
                   			"value1",
                    		lv_value1_1_0, 
                    		"INT");
            	    

            }


            }

            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1811:2: ( (lv_value2_2_0= RULE_INT ) )?
            int alt28=2;
            int LA28_0 = input.LA(1);

            if ( (LA28_0==RULE_INT) ) {
                alt28=1;
            }
            switch (alt28) {
                case 1 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1812:1: (lv_value2_2_0= RULE_INT )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1812:1: (lv_value2_2_0= RULE_INT )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1813:3: lv_value2_2_0= RULE_INT
                    {
                    lv_value2_2_0=(Token)match(input,RULE_INT,FOLLOW_RULE_INT_in_ruleWeaponPattern34441); 

                    			newLeafNode(lv_value2_2_0, grammarAccess.getWeaponPattern3Access().getValue2INTTerminalRuleCall_2_0()); 
                    		

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getWeaponPattern3Rule());
                    	        }
                           		setWithLastConsumed(
                           			current, 
                           			"value2",
                            		lv_value2_2_0, 
                            		"INT");
                    	    

                    }


                    }
                    break;

            }

            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1829:3: (this_FREE_FORM_COMMENT_3= RULE_FREE_FORM_COMMENT )*
            loop29:
            do {
                int alt29=2;
                int LA29_0 = input.LA(1);

                if ( (LA29_0==RULE_FREE_FORM_COMMENT) ) {
                    alt29=1;
                }


                switch (alt29) {
            	case 1 :
            	    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1829:4: this_FREE_FORM_COMMENT_3= RULE_FREE_FORM_COMMENT
            	    {
            	    this_FREE_FORM_COMMENT_3=(Token)match(input,RULE_FREE_FORM_COMMENT,FOLLOW_RULE_FREE_FORM_COMMENT_in_ruleWeaponPattern34459); 
            	     
            	        newLeafNode(this_FREE_FORM_COMMENT_3, grammarAccess.getWeaponPattern3Access().getFREE_FORM_COMMENTTerminalRuleCall_3()); 
            	        

            	    }
            	    break;

            	default :
            	    break loop29;
                }
            } while (true);


            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleWeaponPattern3"


    // $ANTLR start "entryRuleWeaponPattern4"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1841:1: entryRuleWeaponPattern4 returns [EObject current=null] : iv_ruleWeaponPattern4= ruleWeaponPattern4 EOF ;
    public final EObject entryRuleWeaponPattern4() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleWeaponPattern4 = null;


        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1842:2: (iv_ruleWeaponPattern4= ruleWeaponPattern4 EOF )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1843:2: iv_ruleWeaponPattern4= ruleWeaponPattern4 EOF
            {
             newCompositeNode(grammarAccess.getWeaponPattern4Rule()); 
            pushFollow(FOLLOW_ruleWeaponPattern4_in_entryRuleWeaponPattern44496);
            iv_ruleWeaponPattern4=ruleWeaponPattern4();

            state._fsp--;

             current =iv_ruleWeaponPattern4; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleWeaponPattern44506); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleWeaponPattern4"


    // $ANTLR start "ruleWeaponPattern4"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1850:1: ruleWeaponPattern4 returns [EObject current=null] : (this_WeaponInst4_0= ruleWeaponInst4 (this_FREE_FORM_COMMENT_1= RULE_FREE_FORM_COMMENT )* ) ;
    public final EObject ruleWeaponPattern4() throws RecognitionException {
        EObject current = null;

        Token this_FREE_FORM_COMMENT_1=null;
        EObject this_WeaponInst4_0 = null;


         enterRule(); 
            
        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1853:28: ( (this_WeaponInst4_0= ruleWeaponInst4 (this_FREE_FORM_COMMENT_1= RULE_FREE_FORM_COMMENT )* ) )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1854:1: (this_WeaponInst4_0= ruleWeaponInst4 (this_FREE_FORM_COMMENT_1= RULE_FREE_FORM_COMMENT )* )
            {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1854:1: (this_WeaponInst4_0= ruleWeaponInst4 (this_FREE_FORM_COMMENT_1= RULE_FREE_FORM_COMMENT )* )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1855:5: this_WeaponInst4_0= ruleWeaponInst4 (this_FREE_FORM_COMMENT_1= RULE_FREE_FORM_COMMENT )*
            {
             
                    newCompositeNode(grammarAccess.getWeaponPattern4Access().getWeaponInst4ParserRuleCall_0()); 
                
            pushFollow(FOLLOW_ruleWeaponInst4_in_ruleWeaponPattern44553);
            this_WeaponInst4_0=ruleWeaponInst4();

            state._fsp--;

             
                    current = this_WeaponInst4_0; 
                    afterParserOrEnumRuleCall();
                
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1863:1: (this_FREE_FORM_COMMENT_1= RULE_FREE_FORM_COMMENT )*
            loop30:
            do {
                int alt30=2;
                int LA30_0 = input.LA(1);

                if ( (LA30_0==RULE_FREE_FORM_COMMENT) ) {
                    alt30=1;
                }


                switch (alt30) {
            	case 1 :
            	    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1863:2: this_FREE_FORM_COMMENT_1= RULE_FREE_FORM_COMMENT
            	    {
            	    this_FREE_FORM_COMMENT_1=(Token)match(input,RULE_FREE_FORM_COMMENT,FOLLOW_RULE_FREE_FORM_COMMENT_in_ruleWeaponPattern44564); 
            	     
            	        newLeafNode(this_FREE_FORM_COMMENT_1, grammarAccess.getWeaponPattern4Access().getFREE_FORM_COMMENTTerminalRuleCall_1()); 
            	        

            	    }
            	    break;

            	default :
            	    break loop30;
                }
            } while (true);


            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleWeaponPattern4"


    // $ANTLR start "entryRuleWeaponInst1"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1875:1: entryRuleWeaponInst1 returns [EObject current=null] : iv_ruleWeaponInst1= ruleWeaponInst1 EOF ;
    public final EObject entryRuleWeaponInst1() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleWeaponInst1 = null;


        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1876:2: (iv_ruleWeaponInst1= ruleWeaponInst1 EOF )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1877:2: iv_ruleWeaponInst1= ruleWeaponInst1 EOF
            {
             newCompositeNode(grammarAccess.getWeaponInst1Rule()); 
            pushFollow(FOLLOW_ruleWeaponInst1_in_entryRuleWeaponInst14601);
            iv_ruleWeaponInst1=ruleWeaponInst1();

            state._fsp--;

             current =iv_ruleWeaponInst1; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleWeaponInst14611); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleWeaponInst1"


    // $ANTLR start "ruleWeaponInst1"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1884:1: ruleWeaponInst1 returns [EObject current=null] : ( (lv_name_0_0= '#name' ) ) ;
    public final EObject ruleWeaponInst1() throws RecognitionException {
        EObject current = null;

        Token lv_name_0_0=null;

         enterRule(); 
            
        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1887:28: ( ( (lv_name_0_0= '#name' ) ) )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1888:1: ( (lv_name_0_0= '#name' ) )
            {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1888:1: ( (lv_name_0_0= '#name' ) )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1889:1: (lv_name_0_0= '#name' )
            {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1889:1: (lv_name_0_0= '#name' )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1890:3: lv_name_0_0= '#name'
            {
            lv_name_0_0=(Token)match(input,36,FOLLOW_36_in_ruleWeaponInst14653); 

                    newLeafNode(lv_name_0_0, grammarAccess.getWeaponInst1Access().getNameNameKeyword_0());
                

            	        if (current==null) {
            	            current = createModelElement(grammarAccess.getWeaponInst1Rule());
            	        }
                   		setWithLastConsumed(current, "name", true, "#name");
            	    

            }


            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleWeaponInst1"


    // $ANTLR start "entryRuleWeaponInst2"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1911:1: entryRuleWeaponInst2 returns [EObject current=null] : iv_ruleWeaponInst2= ruleWeaponInst2 EOF ;
    public final EObject entryRuleWeaponInst2() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleWeaponInst2 = null;


        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1912:2: (iv_ruleWeaponInst2= ruleWeaponInst2 EOF )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1913:2: iv_ruleWeaponInst2= ruleWeaponInst2 EOF
            {
             newCompositeNode(grammarAccess.getWeaponInst2Rule()); 
            pushFollow(FOLLOW_ruleWeaponInst2_in_entryRuleWeaponInst24701);
            iv_ruleWeaponInst2=ruleWeaponInst2();

            state._fsp--;

             current =iv_ruleWeaponInst2; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleWeaponInst24711); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleWeaponInst2"


    // $ANTLR start "ruleWeaponInst2"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1920:1: ruleWeaponInst2 returns [EObject current=null] : ( ( (lv_dmg_0_0= '#dmg' ) ) | ( (lv_nratt_1_0= '#nratt' ) ) | ( (lv_att_2_0= '#att' ) ) | ( (lv_def_3_0= '#def' ) ) | ( (lv_len_4_0= '#len' ) ) | ( (lv_range_5_0= '#range' ) ) | ( (lv_ammo_6_0= '#ammo' ) ) | ( (lv_rcost_7_0= '#rcost' ) ) | ( (lv_sound_8_0= '#sound' ) ) | ( (lv_aoe_9_0= '#aoe' ) ) | ( (lv_secondaryeffect_10_0= '#secondaryeffect' ) ) | ( (lv_secondaryeffectalways_11_0= '#secondaryeffectalways' ) ) | ( (lv_explspr_12_0= '#explspr' ) ) ) ;
    public final EObject ruleWeaponInst2() throws RecognitionException {
        EObject current = null;

        Token lv_dmg_0_0=null;
        Token lv_nratt_1_0=null;
        Token lv_att_2_0=null;
        Token lv_def_3_0=null;
        Token lv_len_4_0=null;
        Token lv_range_5_0=null;
        Token lv_ammo_6_0=null;
        Token lv_rcost_7_0=null;
        Token lv_sound_8_0=null;
        Token lv_aoe_9_0=null;
        Token lv_secondaryeffect_10_0=null;
        Token lv_secondaryeffectalways_11_0=null;
        Token lv_explspr_12_0=null;

         enterRule(); 
            
        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1923:28: ( ( ( (lv_dmg_0_0= '#dmg' ) ) | ( (lv_nratt_1_0= '#nratt' ) ) | ( (lv_att_2_0= '#att' ) ) | ( (lv_def_3_0= '#def' ) ) | ( (lv_len_4_0= '#len' ) ) | ( (lv_range_5_0= '#range' ) ) | ( (lv_ammo_6_0= '#ammo' ) ) | ( (lv_rcost_7_0= '#rcost' ) ) | ( (lv_sound_8_0= '#sound' ) ) | ( (lv_aoe_9_0= '#aoe' ) ) | ( (lv_secondaryeffect_10_0= '#secondaryeffect' ) ) | ( (lv_secondaryeffectalways_11_0= '#secondaryeffectalways' ) ) | ( (lv_explspr_12_0= '#explspr' ) ) ) )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1924:1: ( ( (lv_dmg_0_0= '#dmg' ) ) | ( (lv_nratt_1_0= '#nratt' ) ) | ( (lv_att_2_0= '#att' ) ) | ( (lv_def_3_0= '#def' ) ) | ( (lv_len_4_0= '#len' ) ) | ( (lv_range_5_0= '#range' ) ) | ( (lv_ammo_6_0= '#ammo' ) ) | ( (lv_rcost_7_0= '#rcost' ) ) | ( (lv_sound_8_0= '#sound' ) ) | ( (lv_aoe_9_0= '#aoe' ) ) | ( (lv_secondaryeffect_10_0= '#secondaryeffect' ) ) | ( (lv_secondaryeffectalways_11_0= '#secondaryeffectalways' ) ) | ( (lv_explspr_12_0= '#explspr' ) ) )
            {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1924:1: ( ( (lv_dmg_0_0= '#dmg' ) ) | ( (lv_nratt_1_0= '#nratt' ) ) | ( (lv_att_2_0= '#att' ) ) | ( (lv_def_3_0= '#def' ) ) | ( (lv_len_4_0= '#len' ) ) | ( (lv_range_5_0= '#range' ) ) | ( (lv_ammo_6_0= '#ammo' ) ) | ( (lv_rcost_7_0= '#rcost' ) ) | ( (lv_sound_8_0= '#sound' ) ) | ( (lv_aoe_9_0= '#aoe' ) ) | ( (lv_secondaryeffect_10_0= '#secondaryeffect' ) ) | ( (lv_secondaryeffectalways_11_0= '#secondaryeffectalways' ) ) | ( (lv_explspr_12_0= '#explspr' ) ) )
            int alt31=13;
            switch ( input.LA(1) ) {
            case 44:
                {
                alt31=1;
                }
                break;
            case 45:
                {
                alt31=2;
                }
                break;
            case 46:
                {
                alt31=3;
                }
                break;
            case 39:
                {
                alt31=4;
                }
                break;
            case 47:
                {
                alt31=5;
                }
                break;
            case 48:
                {
                alt31=6;
                }
                break;
            case 49:
                {
                alt31=7;
                }
                break;
            case 41:
                {
                alt31=8;
                }
                break;
            case 50:
                {
                alt31=9;
                }
                break;
            case 51:
                {
                alt31=10;
                }
                break;
            case 52:
                {
                alt31=11;
                }
                break;
            case 53:
                {
                alt31=12;
                }
                break;
            case 54:
                {
                alt31=13;
                }
                break;
            default:
                NoViableAltException nvae =
                    new NoViableAltException("", 31, 0, input);

                throw nvae;
            }

            switch (alt31) {
                case 1 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1924:2: ( (lv_dmg_0_0= '#dmg' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1924:2: ( (lv_dmg_0_0= '#dmg' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1925:1: (lv_dmg_0_0= '#dmg' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1925:1: (lv_dmg_0_0= '#dmg' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1926:3: lv_dmg_0_0= '#dmg'
                    {
                    lv_dmg_0_0=(Token)match(input,44,FOLLOW_44_in_ruleWeaponInst24754); 

                            newLeafNode(lv_dmg_0_0, grammarAccess.getWeaponInst2Access().getDmgDmgKeyword_0_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getWeaponInst2Rule());
                    	        }
                           		setWithLastConsumed(current, "dmg", true, "#dmg");
                    	    

                    }


                    }


                    }
                    break;
                case 2 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1940:6: ( (lv_nratt_1_0= '#nratt' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1940:6: ( (lv_nratt_1_0= '#nratt' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1941:1: (lv_nratt_1_0= '#nratt' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1941:1: (lv_nratt_1_0= '#nratt' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1942:3: lv_nratt_1_0= '#nratt'
                    {
                    lv_nratt_1_0=(Token)match(input,45,FOLLOW_45_in_ruleWeaponInst24791); 

                            newLeafNode(lv_nratt_1_0, grammarAccess.getWeaponInst2Access().getNrattNrattKeyword_1_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getWeaponInst2Rule());
                    	        }
                           		setWithLastConsumed(current, "nratt", true, "#nratt");
                    	    

                    }


                    }


                    }
                    break;
                case 3 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1956:6: ( (lv_att_2_0= '#att' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1956:6: ( (lv_att_2_0= '#att' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1957:1: (lv_att_2_0= '#att' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1957:1: (lv_att_2_0= '#att' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1958:3: lv_att_2_0= '#att'
                    {
                    lv_att_2_0=(Token)match(input,46,FOLLOW_46_in_ruleWeaponInst24828); 

                            newLeafNode(lv_att_2_0, grammarAccess.getWeaponInst2Access().getAttAttKeyword_2_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getWeaponInst2Rule());
                    	        }
                           		setWithLastConsumed(current, "att", true, "#att");
                    	    

                    }


                    }


                    }
                    break;
                case 4 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1972:6: ( (lv_def_3_0= '#def' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1972:6: ( (lv_def_3_0= '#def' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1973:1: (lv_def_3_0= '#def' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1973:1: (lv_def_3_0= '#def' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1974:3: lv_def_3_0= '#def'
                    {
                    lv_def_3_0=(Token)match(input,39,FOLLOW_39_in_ruleWeaponInst24865); 

                            newLeafNode(lv_def_3_0, grammarAccess.getWeaponInst2Access().getDefDefKeyword_3_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getWeaponInst2Rule());
                    	        }
                           		setWithLastConsumed(current, "def", true, "#def");
                    	    

                    }


                    }


                    }
                    break;
                case 5 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1988:6: ( (lv_len_4_0= '#len' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1988:6: ( (lv_len_4_0= '#len' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1989:1: (lv_len_4_0= '#len' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1989:1: (lv_len_4_0= '#len' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:1990:3: lv_len_4_0= '#len'
                    {
                    lv_len_4_0=(Token)match(input,47,FOLLOW_47_in_ruleWeaponInst24902); 

                            newLeafNode(lv_len_4_0, grammarAccess.getWeaponInst2Access().getLenLenKeyword_4_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getWeaponInst2Rule());
                    	        }
                           		setWithLastConsumed(current, "len", true, "#len");
                    	    

                    }


                    }


                    }
                    break;
                case 6 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2004:6: ( (lv_range_5_0= '#range' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2004:6: ( (lv_range_5_0= '#range' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2005:1: (lv_range_5_0= '#range' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2005:1: (lv_range_5_0= '#range' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2006:3: lv_range_5_0= '#range'
                    {
                    lv_range_5_0=(Token)match(input,48,FOLLOW_48_in_ruleWeaponInst24939); 

                            newLeafNode(lv_range_5_0, grammarAccess.getWeaponInst2Access().getRangeRangeKeyword_5_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getWeaponInst2Rule());
                    	        }
                           		setWithLastConsumed(current, "range", true, "#range");
                    	    

                    }


                    }


                    }
                    break;
                case 7 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2020:6: ( (lv_ammo_6_0= '#ammo' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2020:6: ( (lv_ammo_6_0= '#ammo' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2021:1: (lv_ammo_6_0= '#ammo' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2021:1: (lv_ammo_6_0= '#ammo' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2022:3: lv_ammo_6_0= '#ammo'
                    {
                    lv_ammo_6_0=(Token)match(input,49,FOLLOW_49_in_ruleWeaponInst24976); 

                            newLeafNode(lv_ammo_6_0, grammarAccess.getWeaponInst2Access().getAmmoAmmoKeyword_6_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getWeaponInst2Rule());
                    	        }
                           		setWithLastConsumed(current, "ammo", true, "#ammo");
                    	    

                    }


                    }


                    }
                    break;
                case 8 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2036:6: ( (lv_rcost_7_0= '#rcost' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2036:6: ( (lv_rcost_7_0= '#rcost' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2037:1: (lv_rcost_7_0= '#rcost' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2037:1: (lv_rcost_7_0= '#rcost' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2038:3: lv_rcost_7_0= '#rcost'
                    {
                    lv_rcost_7_0=(Token)match(input,41,FOLLOW_41_in_ruleWeaponInst25013); 

                            newLeafNode(lv_rcost_7_0, grammarAccess.getWeaponInst2Access().getRcostRcostKeyword_7_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getWeaponInst2Rule());
                    	        }
                           		setWithLastConsumed(current, "rcost", true, "#rcost");
                    	    

                    }


                    }


                    }
                    break;
                case 9 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2052:6: ( (lv_sound_8_0= '#sound' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2052:6: ( (lv_sound_8_0= '#sound' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2053:1: (lv_sound_8_0= '#sound' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2053:1: (lv_sound_8_0= '#sound' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2054:3: lv_sound_8_0= '#sound'
                    {
                    lv_sound_8_0=(Token)match(input,50,FOLLOW_50_in_ruleWeaponInst25050); 

                            newLeafNode(lv_sound_8_0, grammarAccess.getWeaponInst2Access().getSoundSoundKeyword_8_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getWeaponInst2Rule());
                    	        }
                           		setWithLastConsumed(current, "sound", true, "#sound");
                    	    

                    }


                    }


                    }
                    break;
                case 10 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2068:6: ( (lv_aoe_9_0= '#aoe' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2068:6: ( (lv_aoe_9_0= '#aoe' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2069:1: (lv_aoe_9_0= '#aoe' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2069:1: (lv_aoe_9_0= '#aoe' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2070:3: lv_aoe_9_0= '#aoe'
                    {
                    lv_aoe_9_0=(Token)match(input,51,FOLLOW_51_in_ruleWeaponInst25087); 

                            newLeafNode(lv_aoe_9_0, grammarAccess.getWeaponInst2Access().getAoeAoeKeyword_9_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getWeaponInst2Rule());
                    	        }
                           		setWithLastConsumed(current, "aoe", true, "#aoe");
                    	    

                    }


                    }


                    }
                    break;
                case 11 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2084:6: ( (lv_secondaryeffect_10_0= '#secondaryeffect' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2084:6: ( (lv_secondaryeffect_10_0= '#secondaryeffect' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2085:1: (lv_secondaryeffect_10_0= '#secondaryeffect' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2085:1: (lv_secondaryeffect_10_0= '#secondaryeffect' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2086:3: lv_secondaryeffect_10_0= '#secondaryeffect'
                    {
                    lv_secondaryeffect_10_0=(Token)match(input,52,FOLLOW_52_in_ruleWeaponInst25124); 

                            newLeafNode(lv_secondaryeffect_10_0, grammarAccess.getWeaponInst2Access().getSecondaryeffectSecondaryeffectKeyword_10_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getWeaponInst2Rule());
                    	        }
                           		setWithLastConsumed(current, "secondaryeffect", true, "#secondaryeffect");
                    	    

                    }


                    }


                    }
                    break;
                case 12 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2100:6: ( (lv_secondaryeffectalways_11_0= '#secondaryeffectalways' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2100:6: ( (lv_secondaryeffectalways_11_0= '#secondaryeffectalways' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2101:1: (lv_secondaryeffectalways_11_0= '#secondaryeffectalways' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2101:1: (lv_secondaryeffectalways_11_0= '#secondaryeffectalways' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2102:3: lv_secondaryeffectalways_11_0= '#secondaryeffectalways'
                    {
                    lv_secondaryeffectalways_11_0=(Token)match(input,53,FOLLOW_53_in_ruleWeaponInst25161); 

                            newLeafNode(lv_secondaryeffectalways_11_0, grammarAccess.getWeaponInst2Access().getSecondaryeffectalwaysSecondaryeffectalwaysKeyword_11_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getWeaponInst2Rule());
                    	        }
                           		setWithLastConsumed(current, "secondaryeffectalways", true, "#secondaryeffectalways");
                    	    

                    }


                    }


                    }
                    break;
                case 13 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2116:6: ( (lv_explspr_12_0= '#explspr' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2116:6: ( (lv_explspr_12_0= '#explspr' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2117:1: (lv_explspr_12_0= '#explspr' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2117:1: (lv_explspr_12_0= '#explspr' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2118:3: lv_explspr_12_0= '#explspr'
                    {
                    lv_explspr_12_0=(Token)match(input,54,FOLLOW_54_in_ruleWeaponInst25198); 

                            newLeafNode(lv_explspr_12_0, grammarAccess.getWeaponInst2Access().getExplsprExplsprKeyword_12_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getWeaponInst2Rule());
                    	        }
                           		setWithLastConsumed(current, "explspr", true, "#explspr");
                    	    

                    }


                    }


                    }
                    break;

            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleWeaponInst2"


    // $ANTLR start "entryRuleWeaponInst3"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2139:1: entryRuleWeaponInst3 returns [EObject current=null] : iv_ruleWeaponInst3= ruleWeaponInst3 EOF ;
    public final EObject entryRuleWeaponInst3() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleWeaponInst3 = null;


        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2140:2: (iv_ruleWeaponInst3= ruleWeaponInst3 EOF )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2141:2: iv_ruleWeaponInst3= ruleWeaponInst3 EOF
            {
             newCompositeNode(grammarAccess.getWeaponInst3Rule()); 
            pushFollow(FOLLOW_ruleWeaponInst3_in_entryRuleWeaponInst35247);
            iv_ruleWeaponInst3=ruleWeaponInst3();

            state._fsp--;

             current =iv_ruleWeaponInst3; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleWeaponInst35257); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleWeaponInst3"


    // $ANTLR start "ruleWeaponInst3"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2148:1: ruleWeaponInst3 returns [EObject current=null] : ( (lv_flyspr_0_0= '#flyspr' ) ) ;
    public final EObject ruleWeaponInst3() throws RecognitionException {
        EObject current = null;

        Token lv_flyspr_0_0=null;

         enterRule(); 
            
        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2151:28: ( ( (lv_flyspr_0_0= '#flyspr' ) ) )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2152:1: ( (lv_flyspr_0_0= '#flyspr' ) )
            {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2152:1: ( (lv_flyspr_0_0= '#flyspr' ) )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2153:1: (lv_flyspr_0_0= '#flyspr' )
            {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2153:1: (lv_flyspr_0_0= '#flyspr' )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2154:3: lv_flyspr_0_0= '#flyspr'
            {
            lv_flyspr_0_0=(Token)match(input,55,FOLLOW_55_in_ruleWeaponInst35299); 

                    newLeafNode(lv_flyspr_0_0, grammarAccess.getWeaponInst3Access().getFlysprFlysprKeyword_0());
                

            	        if (current==null) {
            	            current = createModelElement(grammarAccess.getWeaponInst3Rule());
            	        }
                   		setWithLastConsumed(current, "flyspr", true, "#flyspr");
            	    

            }


            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleWeaponInst3"


    // $ANTLR start "entryRuleWeaponInst4"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2175:1: entryRuleWeaponInst4 returns [EObject current=null] : iv_ruleWeaponInst4= ruleWeaponInst4 EOF ;
    public final EObject entryRuleWeaponInst4() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleWeaponInst4 = null;


        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2176:2: (iv_ruleWeaponInst4= ruleWeaponInst4 EOF )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2177:2: iv_ruleWeaponInst4= ruleWeaponInst4 EOF
            {
             newCompositeNode(grammarAccess.getWeaponInst4Rule()); 
            pushFollow(FOLLOW_ruleWeaponInst4_in_entryRuleWeaponInst45347);
            iv_ruleWeaponInst4=ruleWeaponInst4();

            state._fsp--;

             current =iv_ruleWeaponInst4; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleWeaponInst45357); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleWeaponInst4"


    // $ANTLR start "ruleWeaponInst4"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2184:1: ruleWeaponInst4 returns [EObject current=null] : ( ( (lv_twohanded_0_0= '#twohanded' ) ) | ( (lv_armorpiercing_1_0= '#armorpiercing' ) ) | ( (lv_armornegating_2_0= '#armornegating' ) ) | ( (lv_magic_3_0= '#magic' ) ) | ( (lv_dt_normal_4_0= '#dt_normal' ) ) | ( (lv_dt_stun_5_0= '#dt_stun' ) ) | ( (lv_dt_paralyze_6_0= '#dt_paralyze' ) ) | ( (lv_dt_poison_7_0= '#dt_poison' ) ) | ( (lv_dt_cap_8_0= '#dt_cap' ) ) | ( (lv_dt_demon_9_0= '#dt_demon' ) ) | ( (lv_dt_demononly_10_0= '#dt_demononly' ) ) | ( (lv_dt_holy_11_0= '#dt_holy' ) ) | ( (lv_dt_magic_12_0= '#dt_magic' ) ) | ( (lv_dt_small_13_0= '#dt_small' ) ) | ( (lv_dt_large_14_0= '#dt_large' ) ) | ( (lv_dt_constructonly_15_0= '#dt_constructonly' ) ) | ( (lv_dt_raise_16_0= '#dt_raise' ) ) | ( (lv_mind_17_0= '#mind' ) ) | ( (lv_cold_18_0= '#cold' ) ) | ( (lv_fire_19_0= '#fire' ) ) | ( (lv_shock_20_0= '#shock' ) ) | ( (lv_poison_21_0= '#poison' ) ) | ( (lv_bonus_22_0= '#bonus' ) ) | ( (lv_charge_23_0= '#charge' ) ) | ( (lv_flail_24_0= '#flail' ) ) | ( (lv_nostr_25_0= '#nostr' ) ) | ( (lv_nostr_26_0= '#nostrength' ) ) | ( (lv_mrnegates_27_0= '#mrnegates' ) ) | ( (lv_mrnegateseasily_28_0= '#mrnegateseasily' ) ) ) ;
    public final EObject ruleWeaponInst4() throws RecognitionException {
        EObject current = null;

        Token lv_twohanded_0_0=null;
        Token lv_armorpiercing_1_0=null;
        Token lv_armornegating_2_0=null;
        Token lv_magic_3_0=null;
        Token lv_dt_normal_4_0=null;
        Token lv_dt_stun_5_0=null;
        Token lv_dt_paralyze_6_0=null;
        Token lv_dt_poison_7_0=null;
        Token lv_dt_cap_8_0=null;
        Token lv_dt_demon_9_0=null;
        Token lv_dt_demononly_10_0=null;
        Token lv_dt_holy_11_0=null;
        Token lv_dt_magic_12_0=null;
        Token lv_dt_small_13_0=null;
        Token lv_dt_large_14_0=null;
        Token lv_dt_constructonly_15_0=null;
        Token lv_dt_raise_16_0=null;
        Token lv_mind_17_0=null;
        Token lv_cold_18_0=null;
        Token lv_fire_19_0=null;
        Token lv_shock_20_0=null;
        Token lv_poison_21_0=null;
        Token lv_bonus_22_0=null;
        Token lv_charge_23_0=null;
        Token lv_flail_24_0=null;
        Token lv_nostr_25_0=null;
        Token lv_nostr_26_0=null;
        Token lv_mrnegates_27_0=null;
        Token lv_mrnegateseasily_28_0=null;

         enterRule(); 
            
        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2187:28: ( ( ( (lv_twohanded_0_0= '#twohanded' ) ) | ( (lv_armorpiercing_1_0= '#armorpiercing' ) ) | ( (lv_armornegating_2_0= '#armornegating' ) ) | ( (lv_magic_3_0= '#magic' ) ) | ( (lv_dt_normal_4_0= '#dt_normal' ) ) | ( (lv_dt_stun_5_0= '#dt_stun' ) ) | ( (lv_dt_paralyze_6_0= '#dt_paralyze' ) ) | ( (lv_dt_poison_7_0= '#dt_poison' ) ) | ( (lv_dt_cap_8_0= '#dt_cap' ) ) | ( (lv_dt_demon_9_0= '#dt_demon' ) ) | ( (lv_dt_demononly_10_0= '#dt_demononly' ) ) | ( (lv_dt_holy_11_0= '#dt_holy' ) ) | ( (lv_dt_magic_12_0= '#dt_magic' ) ) | ( (lv_dt_small_13_0= '#dt_small' ) ) | ( (lv_dt_large_14_0= '#dt_large' ) ) | ( (lv_dt_constructonly_15_0= '#dt_constructonly' ) ) | ( (lv_dt_raise_16_0= '#dt_raise' ) ) | ( (lv_mind_17_0= '#mind' ) ) | ( (lv_cold_18_0= '#cold' ) ) | ( (lv_fire_19_0= '#fire' ) ) | ( (lv_shock_20_0= '#shock' ) ) | ( (lv_poison_21_0= '#poison' ) ) | ( (lv_bonus_22_0= '#bonus' ) ) | ( (lv_charge_23_0= '#charge' ) ) | ( (lv_flail_24_0= '#flail' ) ) | ( (lv_nostr_25_0= '#nostr' ) ) | ( (lv_nostr_26_0= '#nostrength' ) ) | ( (lv_mrnegates_27_0= '#mrnegates' ) ) | ( (lv_mrnegateseasily_28_0= '#mrnegateseasily' ) ) ) )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2188:1: ( ( (lv_twohanded_0_0= '#twohanded' ) ) | ( (lv_armorpiercing_1_0= '#armorpiercing' ) ) | ( (lv_armornegating_2_0= '#armornegating' ) ) | ( (lv_magic_3_0= '#magic' ) ) | ( (lv_dt_normal_4_0= '#dt_normal' ) ) | ( (lv_dt_stun_5_0= '#dt_stun' ) ) | ( (lv_dt_paralyze_6_0= '#dt_paralyze' ) ) | ( (lv_dt_poison_7_0= '#dt_poison' ) ) | ( (lv_dt_cap_8_0= '#dt_cap' ) ) | ( (lv_dt_demon_9_0= '#dt_demon' ) ) | ( (lv_dt_demononly_10_0= '#dt_demononly' ) ) | ( (lv_dt_holy_11_0= '#dt_holy' ) ) | ( (lv_dt_magic_12_0= '#dt_magic' ) ) | ( (lv_dt_small_13_0= '#dt_small' ) ) | ( (lv_dt_large_14_0= '#dt_large' ) ) | ( (lv_dt_constructonly_15_0= '#dt_constructonly' ) ) | ( (lv_dt_raise_16_0= '#dt_raise' ) ) | ( (lv_mind_17_0= '#mind' ) ) | ( (lv_cold_18_0= '#cold' ) ) | ( (lv_fire_19_0= '#fire' ) ) | ( (lv_shock_20_0= '#shock' ) ) | ( (lv_poison_21_0= '#poison' ) ) | ( (lv_bonus_22_0= '#bonus' ) ) | ( (lv_charge_23_0= '#charge' ) ) | ( (lv_flail_24_0= '#flail' ) ) | ( (lv_nostr_25_0= '#nostr' ) ) | ( (lv_nostr_26_0= '#nostrength' ) ) | ( (lv_mrnegates_27_0= '#mrnegates' ) ) | ( (lv_mrnegateseasily_28_0= '#mrnegateseasily' ) ) )
            {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2188:1: ( ( (lv_twohanded_0_0= '#twohanded' ) ) | ( (lv_armorpiercing_1_0= '#armorpiercing' ) ) | ( (lv_armornegating_2_0= '#armornegating' ) ) | ( (lv_magic_3_0= '#magic' ) ) | ( (lv_dt_normal_4_0= '#dt_normal' ) ) | ( (lv_dt_stun_5_0= '#dt_stun' ) ) | ( (lv_dt_paralyze_6_0= '#dt_paralyze' ) ) | ( (lv_dt_poison_7_0= '#dt_poison' ) ) | ( (lv_dt_cap_8_0= '#dt_cap' ) ) | ( (lv_dt_demon_9_0= '#dt_demon' ) ) | ( (lv_dt_demononly_10_0= '#dt_demononly' ) ) | ( (lv_dt_holy_11_0= '#dt_holy' ) ) | ( (lv_dt_magic_12_0= '#dt_magic' ) ) | ( (lv_dt_small_13_0= '#dt_small' ) ) | ( (lv_dt_large_14_0= '#dt_large' ) ) | ( (lv_dt_constructonly_15_0= '#dt_constructonly' ) ) | ( (lv_dt_raise_16_0= '#dt_raise' ) ) | ( (lv_mind_17_0= '#mind' ) ) | ( (lv_cold_18_0= '#cold' ) ) | ( (lv_fire_19_0= '#fire' ) ) | ( (lv_shock_20_0= '#shock' ) ) | ( (lv_poison_21_0= '#poison' ) ) | ( (lv_bonus_22_0= '#bonus' ) ) | ( (lv_charge_23_0= '#charge' ) ) | ( (lv_flail_24_0= '#flail' ) ) | ( (lv_nostr_25_0= '#nostr' ) ) | ( (lv_nostr_26_0= '#nostrength' ) ) | ( (lv_mrnegates_27_0= '#mrnegates' ) ) | ( (lv_mrnegateseasily_28_0= '#mrnegateseasily' ) ) )
            int alt32=29;
            switch ( input.LA(1) ) {
            case 56:
                {
                alt32=1;
                }
                break;
            case 57:
                {
                alt32=2;
                }
                break;
            case 58:
                {
                alt32=3;
                }
                break;
            case 59:
                {
                alt32=4;
                }
                break;
            case 60:
                {
                alt32=5;
                }
                break;
            case 61:
                {
                alt32=6;
                }
                break;
            case 62:
                {
                alt32=7;
                }
                break;
            case 63:
                {
                alt32=8;
                }
                break;
            case 64:
                {
                alt32=9;
                }
                break;
            case 65:
                {
                alt32=10;
                }
                break;
            case 66:
                {
                alt32=11;
                }
                break;
            case 67:
                {
                alt32=12;
                }
                break;
            case 68:
                {
                alt32=13;
                }
                break;
            case 69:
                {
                alt32=14;
                }
                break;
            case 70:
                {
                alt32=15;
                }
                break;
            case 71:
                {
                alt32=16;
                }
                break;
            case 72:
                {
                alt32=17;
                }
                break;
            case 73:
                {
                alt32=18;
                }
                break;
            case 74:
                {
                alt32=19;
                }
                break;
            case 75:
                {
                alt32=20;
                }
                break;
            case 76:
                {
                alt32=21;
                }
                break;
            case 77:
                {
                alt32=22;
                }
                break;
            case 78:
                {
                alt32=23;
                }
                break;
            case 79:
                {
                alt32=24;
                }
                break;
            case 80:
                {
                alt32=25;
                }
                break;
            case 81:
                {
                alt32=26;
                }
                break;
            case 82:
                {
                alt32=27;
                }
                break;
            case 83:
                {
                alt32=28;
                }
                break;
            case 84:
                {
                alt32=29;
                }
                break;
            default:
                NoViableAltException nvae =
                    new NoViableAltException("", 32, 0, input);

                throw nvae;
            }

            switch (alt32) {
                case 1 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2188:2: ( (lv_twohanded_0_0= '#twohanded' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2188:2: ( (lv_twohanded_0_0= '#twohanded' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2189:1: (lv_twohanded_0_0= '#twohanded' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2189:1: (lv_twohanded_0_0= '#twohanded' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2190:3: lv_twohanded_0_0= '#twohanded'
                    {
                    lv_twohanded_0_0=(Token)match(input,56,FOLLOW_56_in_ruleWeaponInst45400); 

                            newLeafNode(lv_twohanded_0_0, grammarAccess.getWeaponInst4Access().getTwohandedTwohandedKeyword_0_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getWeaponInst4Rule());
                    	        }
                           		setWithLastConsumed(current, "twohanded", true, "#twohanded");
                    	    

                    }


                    }


                    }
                    break;
                case 2 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2204:6: ( (lv_armorpiercing_1_0= '#armorpiercing' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2204:6: ( (lv_armorpiercing_1_0= '#armorpiercing' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2205:1: (lv_armorpiercing_1_0= '#armorpiercing' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2205:1: (lv_armorpiercing_1_0= '#armorpiercing' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2206:3: lv_armorpiercing_1_0= '#armorpiercing'
                    {
                    lv_armorpiercing_1_0=(Token)match(input,57,FOLLOW_57_in_ruleWeaponInst45437); 

                            newLeafNode(lv_armorpiercing_1_0, grammarAccess.getWeaponInst4Access().getArmorpiercingArmorpiercingKeyword_1_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getWeaponInst4Rule());
                    	        }
                           		setWithLastConsumed(current, "armorpiercing", true, "#armorpiercing");
                    	    

                    }


                    }


                    }
                    break;
                case 3 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2220:6: ( (lv_armornegating_2_0= '#armornegating' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2220:6: ( (lv_armornegating_2_0= '#armornegating' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2221:1: (lv_armornegating_2_0= '#armornegating' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2221:1: (lv_armornegating_2_0= '#armornegating' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2222:3: lv_armornegating_2_0= '#armornegating'
                    {
                    lv_armornegating_2_0=(Token)match(input,58,FOLLOW_58_in_ruleWeaponInst45474); 

                            newLeafNode(lv_armornegating_2_0, grammarAccess.getWeaponInst4Access().getArmornegatingArmornegatingKeyword_2_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getWeaponInst4Rule());
                    	        }
                           		setWithLastConsumed(current, "armornegating", true, "#armornegating");
                    	    

                    }


                    }


                    }
                    break;
                case 4 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2236:6: ( (lv_magic_3_0= '#magic' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2236:6: ( (lv_magic_3_0= '#magic' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2237:1: (lv_magic_3_0= '#magic' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2237:1: (lv_magic_3_0= '#magic' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2238:3: lv_magic_3_0= '#magic'
                    {
                    lv_magic_3_0=(Token)match(input,59,FOLLOW_59_in_ruleWeaponInst45511); 

                            newLeafNode(lv_magic_3_0, grammarAccess.getWeaponInst4Access().getMagicMagicKeyword_3_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getWeaponInst4Rule());
                    	        }
                           		setWithLastConsumed(current, "magic", true, "#magic");
                    	    

                    }


                    }


                    }
                    break;
                case 5 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2252:6: ( (lv_dt_normal_4_0= '#dt_normal' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2252:6: ( (lv_dt_normal_4_0= '#dt_normal' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2253:1: (lv_dt_normal_4_0= '#dt_normal' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2253:1: (lv_dt_normal_4_0= '#dt_normal' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2254:3: lv_dt_normal_4_0= '#dt_normal'
                    {
                    lv_dt_normal_4_0=(Token)match(input,60,FOLLOW_60_in_ruleWeaponInst45548); 

                            newLeafNode(lv_dt_normal_4_0, grammarAccess.getWeaponInst4Access().getDt_normalDt_normalKeyword_4_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getWeaponInst4Rule());
                    	        }
                           		setWithLastConsumed(current, "dt_normal", true, "#dt_normal");
                    	    

                    }


                    }


                    }
                    break;
                case 6 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2268:6: ( (lv_dt_stun_5_0= '#dt_stun' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2268:6: ( (lv_dt_stun_5_0= '#dt_stun' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2269:1: (lv_dt_stun_5_0= '#dt_stun' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2269:1: (lv_dt_stun_5_0= '#dt_stun' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2270:3: lv_dt_stun_5_0= '#dt_stun'
                    {
                    lv_dt_stun_5_0=(Token)match(input,61,FOLLOW_61_in_ruleWeaponInst45585); 

                            newLeafNode(lv_dt_stun_5_0, grammarAccess.getWeaponInst4Access().getDt_stunDt_stunKeyword_5_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getWeaponInst4Rule());
                    	        }
                           		setWithLastConsumed(current, "dt_stun", true, "#dt_stun");
                    	    

                    }


                    }


                    }
                    break;
                case 7 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2284:6: ( (lv_dt_paralyze_6_0= '#dt_paralyze' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2284:6: ( (lv_dt_paralyze_6_0= '#dt_paralyze' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2285:1: (lv_dt_paralyze_6_0= '#dt_paralyze' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2285:1: (lv_dt_paralyze_6_0= '#dt_paralyze' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2286:3: lv_dt_paralyze_6_0= '#dt_paralyze'
                    {
                    lv_dt_paralyze_6_0=(Token)match(input,62,FOLLOW_62_in_ruleWeaponInst45622); 

                            newLeafNode(lv_dt_paralyze_6_0, grammarAccess.getWeaponInst4Access().getDt_paralyzeDt_paralyzeKeyword_6_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getWeaponInst4Rule());
                    	        }
                           		setWithLastConsumed(current, "dt_paralyze", true, "#dt_paralyze");
                    	    

                    }


                    }


                    }
                    break;
                case 8 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2300:6: ( (lv_dt_poison_7_0= '#dt_poison' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2300:6: ( (lv_dt_poison_7_0= '#dt_poison' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2301:1: (lv_dt_poison_7_0= '#dt_poison' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2301:1: (lv_dt_poison_7_0= '#dt_poison' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2302:3: lv_dt_poison_7_0= '#dt_poison'
                    {
                    lv_dt_poison_7_0=(Token)match(input,63,FOLLOW_63_in_ruleWeaponInst45659); 

                            newLeafNode(lv_dt_poison_7_0, grammarAccess.getWeaponInst4Access().getDt_poisonDt_poisonKeyword_7_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getWeaponInst4Rule());
                    	        }
                           		setWithLastConsumed(current, "dt_poison", true, "#dt_poison");
                    	    

                    }


                    }


                    }
                    break;
                case 9 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2316:6: ( (lv_dt_cap_8_0= '#dt_cap' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2316:6: ( (lv_dt_cap_8_0= '#dt_cap' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2317:1: (lv_dt_cap_8_0= '#dt_cap' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2317:1: (lv_dt_cap_8_0= '#dt_cap' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2318:3: lv_dt_cap_8_0= '#dt_cap'
                    {
                    lv_dt_cap_8_0=(Token)match(input,64,FOLLOW_64_in_ruleWeaponInst45696); 

                            newLeafNode(lv_dt_cap_8_0, grammarAccess.getWeaponInst4Access().getDt_capDt_capKeyword_8_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getWeaponInst4Rule());
                    	        }
                           		setWithLastConsumed(current, "dt_cap", true, "#dt_cap");
                    	    

                    }


                    }


                    }
                    break;
                case 10 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2332:6: ( (lv_dt_demon_9_0= '#dt_demon' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2332:6: ( (lv_dt_demon_9_0= '#dt_demon' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2333:1: (lv_dt_demon_9_0= '#dt_demon' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2333:1: (lv_dt_demon_9_0= '#dt_demon' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2334:3: lv_dt_demon_9_0= '#dt_demon'
                    {
                    lv_dt_demon_9_0=(Token)match(input,65,FOLLOW_65_in_ruleWeaponInst45733); 

                            newLeafNode(lv_dt_demon_9_0, grammarAccess.getWeaponInst4Access().getDt_demonDt_demonKeyword_9_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getWeaponInst4Rule());
                    	        }
                           		setWithLastConsumed(current, "dt_demon", true, "#dt_demon");
                    	    

                    }


                    }


                    }
                    break;
                case 11 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2348:6: ( (lv_dt_demononly_10_0= '#dt_demononly' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2348:6: ( (lv_dt_demononly_10_0= '#dt_demononly' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2349:1: (lv_dt_demononly_10_0= '#dt_demononly' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2349:1: (lv_dt_demononly_10_0= '#dt_demononly' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2350:3: lv_dt_demononly_10_0= '#dt_demononly'
                    {
                    lv_dt_demononly_10_0=(Token)match(input,66,FOLLOW_66_in_ruleWeaponInst45770); 

                            newLeafNode(lv_dt_demononly_10_0, grammarAccess.getWeaponInst4Access().getDt_demononlyDt_demononlyKeyword_10_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getWeaponInst4Rule());
                    	        }
                           		setWithLastConsumed(current, "dt_demononly", true, "#dt_demononly");
                    	    

                    }


                    }


                    }
                    break;
                case 12 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2364:6: ( (lv_dt_holy_11_0= '#dt_holy' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2364:6: ( (lv_dt_holy_11_0= '#dt_holy' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2365:1: (lv_dt_holy_11_0= '#dt_holy' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2365:1: (lv_dt_holy_11_0= '#dt_holy' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2366:3: lv_dt_holy_11_0= '#dt_holy'
                    {
                    lv_dt_holy_11_0=(Token)match(input,67,FOLLOW_67_in_ruleWeaponInst45807); 

                            newLeafNode(lv_dt_holy_11_0, grammarAccess.getWeaponInst4Access().getDt_holyDt_holyKeyword_11_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getWeaponInst4Rule());
                    	        }
                           		setWithLastConsumed(current, "dt_holy", true, "#dt_holy");
                    	    

                    }


                    }


                    }
                    break;
                case 13 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2380:6: ( (lv_dt_magic_12_0= '#dt_magic' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2380:6: ( (lv_dt_magic_12_0= '#dt_magic' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2381:1: (lv_dt_magic_12_0= '#dt_magic' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2381:1: (lv_dt_magic_12_0= '#dt_magic' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2382:3: lv_dt_magic_12_0= '#dt_magic'
                    {
                    lv_dt_magic_12_0=(Token)match(input,68,FOLLOW_68_in_ruleWeaponInst45844); 

                            newLeafNode(lv_dt_magic_12_0, grammarAccess.getWeaponInst4Access().getDt_magicDt_magicKeyword_12_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getWeaponInst4Rule());
                    	        }
                           		setWithLastConsumed(current, "dt_magic", true, "#dt_magic");
                    	    

                    }


                    }


                    }
                    break;
                case 14 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2396:6: ( (lv_dt_small_13_0= '#dt_small' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2396:6: ( (lv_dt_small_13_0= '#dt_small' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2397:1: (lv_dt_small_13_0= '#dt_small' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2397:1: (lv_dt_small_13_0= '#dt_small' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2398:3: lv_dt_small_13_0= '#dt_small'
                    {
                    lv_dt_small_13_0=(Token)match(input,69,FOLLOW_69_in_ruleWeaponInst45881); 

                            newLeafNode(lv_dt_small_13_0, grammarAccess.getWeaponInst4Access().getDt_smallDt_smallKeyword_13_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getWeaponInst4Rule());
                    	        }
                           		setWithLastConsumed(current, "dt_small", true, "#dt_small");
                    	    

                    }


                    }


                    }
                    break;
                case 15 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2412:6: ( (lv_dt_large_14_0= '#dt_large' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2412:6: ( (lv_dt_large_14_0= '#dt_large' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2413:1: (lv_dt_large_14_0= '#dt_large' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2413:1: (lv_dt_large_14_0= '#dt_large' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2414:3: lv_dt_large_14_0= '#dt_large'
                    {
                    lv_dt_large_14_0=(Token)match(input,70,FOLLOW_70_in_ruleWeaponInst45918); 

                            newLeafNode(lv_dt_large_14_0, grammarAccess.getWeaponInst4Access().getDt_largeDt_largeKeyword_14_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getWeaponInst4Rule());
                    	        }
                           		setWithLastConsumed(current, "dt_large", true, "#dt_large");
                    	    

                    }


                    }


                    }
                    break;
                case 16 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2428:6: ( (lv_dt_constructonly_15_0= '#dt_constructonly' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2428:6: ( (lv_dt_constructonly_15_0= '#dt_constructonly' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2429:1: (lv_dt_constructonly_15_0= '#dt_constructonly' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2429:1: (lv_dt_constructonly_15_0= '#dt_constructonly' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2430:3: lv_dt_constructonly_15_0= '#dt_constructonly'
                    {
                    lv_dt_constructonly_15_0=(Token)match(input,71,FOLLOW_71_in_ruleWeaponInst45955); 

                            newLeafNode(lv_dt_constructonly_15_0, grammarAccess.getWeaponInst4Access().getDt_constructonlyDt_constructonlyKeyword_15_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getWeaponInst4Rule());
                    	        }
                           		setWithLastConsumed(current, "dt_constructonly", true, "#dt_constructonly");
                    	    

                    }


                    }


                    }
                    break;
                case 17 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2444:6: ( (lv_dt_raise_16_0= '#dt_raise' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2444:6: ( (lv_dt_raise_16_0= '#dt_raise' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2445:1: (lv_dt_raise_16_0= '#dt_raise' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2445:1: (lv_dt_raise_16_0= '#dt_raise' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2446:3: lv_dt_raise_16_0= '#dt_raise'
                    {
                    lv_dt_raise_16_0=(Token)match(input,72,FOLLOW_72_in_ruleWeaponInst45992); 

                            newLeafNode(lv_dt_raise_16_0, grammarAccess.getWeaponInst4Access().getDt_raiseDt_raiseKeyword_16_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getWeaponInst4Rule());
                    	        }
                           		setWithLastConsumed(current, "dt_raise", true, "#dt_raise");
                    	    

                    }


                    }


                    }
                    break;
                case 18 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2460:6: ( (lv_mind_17_0= '#mind' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2460:6: ( (lv_mind_17_0= '#mind' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2461:1: (lv_mind_17_0= '#mind' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2461:1: (lv_mind_17_0= '#mind' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2462:3: lv_mind_17_0= '#mind'
                    {
                    lv_mind_17_0=(Token)match(input,73,FOLLOW_73_in_ruleWeaponInst46029); 

                            newLeafNode(lv_mind_17_0, grammarAccess.getWeaponInst4Access().getMindMindKeyword_17_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getWeaponInst4Rule());
                    	        }
                           		setWithLastConsumed(current, "mind", true, "#mind");
                    	    

                    }


                    }


                    }
                    break;
                case 19 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2476:6: ( (lv_cold_18_0= '#cold' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2476:6: ( (lv_cold_18_0= '#cold' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2477:1: (lv_cold_18_0= '#cold' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2477:1: (lv_cold_18_0= '#cold' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2478:3: lv_cold_18_0= '#cold'
                    {
                    lv_cold_18_0=(Token)match(input,74,FOLLOW_74_in_ruleWeaponInst46066); 

                            newLeafNode(lv_cold_18_0, grammarAccess.getWeaponInst4Access().getColdColdKeyword_18_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getWeaponInst4Rule());
                    	        }
                           		setWithLastConsumed(current, "cold", true, "#cold");
                    	    

                    }


                    }


                    }
                    break;
                case 20 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2492:6: ( (lv_fire_19_0= '#fire' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2492:6: ( (lv_fire_19_0= '#fire' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2493:1: (lv_fire_19_0= '#fire' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2493:1: (lv_fire_19_0= '#fire' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2494:3: lv_fire_19_0= '#fire'
                    {
                    lv_fire_19_0=(Token)match(input,75,FOLLOW_75_in_ruleWeaponInst46103); 

                            newLeafNode(lv_fire_19_0, grammarAccess.getWeaponInst4Access().getFireFireKeyword_19_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getWeaponInst4Rule());
                    	        }
                           		setWithLastConsumed(current, "fire", true, "#fire");
                    	    

                    }


                    }


                    }
                    break;
                case 21 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2508:6: ( (lv_shock_20_0= '#shock' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2508:6: ( (lv_shock_20_0= '#shock' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2509:1: (lv_shock_20_0= '#shock' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2509:1: (lv_shock_20_0= '#shock' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2510:3: lv_shock_20_0= '#shock'
                    {
                    lv_shock_20_0=(Token)match(input,76,FOLLOW_76_in_ruleWeaponInst46140); 

                            newLeafNode(lv_shock_20_0, grammarAccess.getWeaponInst4Access().getShockShockKeyword_20_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getWeaponInst4Rule());
                    	        }
                           		setWithLastConsumed(current, "shock", true, "#shock");
                    	    

                    }


                    }


                    }
                    break;
                case 22 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2524:6: ( (lv_poison_21_0= '#poison' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2524:6: ( (lv_poison_21_0= '#poison' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2525:1: (lv_poison_21_0= '#poison' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2525:1: (lv_poison_21_0= '#poison' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2526:3: lv_poison_21_0= '#poison'
                    {
                    lv_poison_21_0=(Token)match(input,77,FOLLOW_77_in_ruleWeaponInst46177); 

                            newLeafNode(lv_poison_21_0, grammarAccess.getWeaponInst4Access().getPoisonPoisonKeyword_21_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getWeaponInst4Rule());
                    	        }
                           		setWithLastConsumed(current, "poison", true, "#poison");
                    	    

                    }


                    }


                    }
                    break;
                case 23 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2540:6: ( (lv_bonus_22_0= '#bonus' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2540:6: ( (lv_bonus_22_0= '#bonus' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2541:1: (lv_bonus_22_0= '#bonus' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2541:1: (lv_bonus_22_0= '#bonus' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2542:3: lv_bonus_22_0= '#bonus'
                    {
                    lv_bonus_22_0=(Token)match(input,78,FOLLOW_78_in_ruleWeaponInst46214); 

                            newLeafNode(lv_bonus_22_0, grammarAccess.getWeaponInst4Access().getBonusBonusKeyword_22_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getWeaponInst4Rule());
                    	        }
                           		setWithLastConsumed(current, "bonus", true, "#bonus");
                    	    

                    }


                    }


                    }
                    break;
                case 24 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2556:6: ( (lv_charge_23_0= '#charge' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2556:6: ( (lv_charge_23_0= '#charge' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2557:1: (lv_charge_23_0= '#charge' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2557:1: (lv_charge_23_0= '#charge' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2558:3: lv_charge_23_0= '#charge'
                    {
                    lv_charge_23_0=(Token)match(input,79,FOLLOW_79_in_ruleWeaponInst46251); 

                            newLeafNode(lv_charge_23_0, grammarAccess.getWeaponInst4Access().getChargeChargeKeyword_23_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getWeaponInst4Rule());
                    	        }
                           		setWithLastConsumed(current, "charge", true, "#charge");
                    	    

                    }


                    }


                    }
                    break;
                case 25 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2572:6: ( (lv_flail_24_0= '#flail' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2572:6: ( (lv_flail_24_0= '#flail' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2573:1: (lv_flail_24_0= '#flail' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2573:1: (lv_flail_24_0= '#flail' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2574:3: lv_flail_24_0= '#flail'
                    {
                    lv_flail_24_0=(Token)match(input,80,FOLLOW_80_in_ruleWeaponInst46288); 

                            newLeafNode(lv_flail_24_0, grammarAccess.getWeaponInst4Access().getFlailFlailKeyword_24_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getWeaponInst4Rule());
                    	        }
                           		setWithLastConsumed(current, "flail", true, "#flail");
                    	    

                    }


                    }


                    }
                    break;
                case 26 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2588:6: ( (lv_nostr_25_0= '#nostr' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2588:6: ( (lv_nostr_25_0= '#nostr' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2589:1: (lv_nostr_25_0= '#nostr' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2589:1: (lv_nostr_25_0= '#nostr' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2590:3: lv_nostr_25_0= '#nostr'
                    {
                    lv_nostr_25_0=(Token)match(input,81,FOLLOW_81_in_ruleWeaponInst46325); 

                            newLeafNode(lv_nostr_25_0, grammarAccess.getWeaponInst4Access().getNostrNostrKeyword_25_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getWeaponInst4Rule());
                    	        }
                           		setWithLastConsumed(current, "nostr", true, "#nostr");
                    	    

                    }


                    }


                    }
                    break;
                case 27 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2604:6: ( (lv_nostr_26_0= '#nostrength' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2604:6: ( (lv_nostr_26_0= '#nostrength' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2605:1: (lv_nostr_26_0= '#nostrength' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2605:1: (lv_nostr_26_0= '#nostrength' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2606:3: lv_nostr_26_0= '#nostrength'
                    {
                    lv_nostr_26_0=(Token)match(input,82,FOLLOW_82_in_ruleWeaponInst46362); 

                            newLeafNode(lv_nostr_26_0, grammarAccess.getWeaponInst4Access().getNostrNostrengthKeyword_26_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getWeaponInst4Rule());
                    	        }
                           		setWithLastConsumed(current, "nostr", true, "#nostrength");
                    	    

                    }


                    }


                    }
                    break;
                case 28 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2620:6: ( (lv_mrnegates_27_0= '#mrnegates' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2620:6: ( (lv_mrnegates_27_0= '#mrnegates' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2621:1: (lv_mrnegates_27_0= '#mrnegates' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2621:1: (lv_mrnegates_27_0= '#mrnegates' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2622:3: lv_mrnegates_27_0= '#mrnegates'
                    {
                    lv_mrnegates_27_0=(Token)match(input,83,FOLLOW_83_in_ruleWeaponInst46399); 

                            newLeafNode(lv_mrnegates_27_0, grammarAccess.getWeaponInst4Access().getMrnegatesMrnegatesKeyword_27_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getWeaponInst4Rule());
                    	        }
                           		setWithLastConsumed(current, "mrnegates", true, "#mrnegates");
                    	    

                    }


                    }


                    }
                    break;
                case 29 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2636:6: ( (lv_mrnegateseasily_28_0= '#mrnegateseasily' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2636:6: ( (lv_mrnegateseasily_28_0= '#mrnegateseasily' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2637:1: (lv_mrnegateseasily_28_0= '#mrnegateseasily' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2637:1: (lv_mrnegateseasily_28_0= '#mrnegateseasily' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2638:3: lv_mrnegateseasily_28_0= '#mrnegateseasily'
                    {
                    lv_mrnegateseasily_28_0=(Token)match(input,84,FOLLOW_84_in_ruleWeaponInst46436); 

                            newLeafNode(lv_mrnegateseasily_28_0, grammarAccess.getWeaponInst4Access().getMrnegateseasilyMrnegateseasilyKeyword_28_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getWeaponInst4Rule());
                    	        }
                           		setWithLastConsumed(current, "mrnegateseasily", true, "#mrnegateseasily");
                    	    

                    }


                    }


                    }
                    break;

            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleWeaponInst4"


    // $ANTLR start "entryRuleMonster"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2659:1: entryRuleMonster returns [EObject current=null] : iv_ruleMonster= ruleMonster EOF ;
    public final EObject entryRuleMonster() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleMonster = null;


        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2660:2: (iv_ruleMonster= ruleMonster EOF )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2661:2: iv_ruleMonster= ruleMonster EOF
            {
             newCompositeNode(grammarAccess.getMonsterRule()); 
            pushFollow(FOLLOW_ruleMonster_in_entryRuleMonster6485);
            iv_ruleMonster=ruleMonster();

            state._fsp--;

             current =iv_ruleMonster; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleMonster6495); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleMonster"


    // $ANTLR start "ruleMonster"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2668:1: ruleMonster returns [EObject current=null] : (this_SelectMonsterById_0= ruleSelectMonsterById | this_SelectMonsterByName_1= ruleSelectMonsterByName | this_NewMonster_2= ruleNewMonster ) ;
    public final EObject ruleMonster() throws RecognitionException {
        EObject current = null;

        EObject this_SelectMonsterById_0 = null;

        EObject this_SelectMonsterByName_1 = null;

        EObject this_NewMonster_2 = null;


         enterRule(); 
            
        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2671:28: ( (this_SelectMonsterById_0= ruleSelectMonsterById | this_SelectMonsterByName_1= ruleSelectMonsterByName | this_NewMonster_2= ruleNewMonster ) )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2672:1: (this_SelectMonsterById_0= ruleSelectMonsterById | this_SelectMonsterByName_1= ruleSelectMonsterByName | this_NewMonster_2= ruleNewMonster )
            {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2672:1: (this_SelectMonsterById_0= ruleSelectMonsterById | this_SelectMonsterByName_1= ruleSelectMonsterByName | this_NewMonster_2= ruleNewMonster )
            int alt33=3;
            int LA33_0 = input.LA(1);

            if ( (LA33_0==85) ) {
                int LA33_1 = input.LA(2);

                if ( (LA33_1==RULE_STRING) ) {
                    alt33=2;
                }
                else if ( (LA33_1==RULE_INT) ) {
                    alt33=1;
                }
                else {
                    NoViableAltException nvae =
                        new NoViableAltException("", 33, 1, input);

                    throw nvae;
                }
            }
            else if ( (LA33_0==86) ) {
                alt33=3;
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("", 33, 0, input);

                throw nvae;
            }
            switch (alt33) {
                case 1 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2673:5: this_SelectMonsterById_0= ruleSelectMonsterById
                    {
                     
                            newCompositeNode(grammarAccess.getMonsterAccess().getSelectMonsterByIdParserRuleCall_0()); 
                        
                    pushFollow(FOLLOW_ruleSelectMonsterById_in_ruleMonster6542);
                    this_SelectMonsterById_0=ruleSelectMonsterById();

                    state._fsp--;

                     
                            current = this_SelectMonsterById_0; 
                            afterParserOrEnumRuleCall();
                        

                    }
                    break;
                case 2 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2683:5: this_SelectMonsterByName_1= ruleSelectMonsterByName
                    {
                     
                            newCompositeNode(grammarAccess.getMonsterAccess().getSelectMonsterByNameParserRuleCall_1()); 
                        
                    pushFollow(FOLLOW_ruleSelectMonsterByName_in_ruleMonster6569);
                    this_SelectMonsterByName_1=ruleSelectMonsterByName();

                    state._fsp--;

                     
                            current = this_SelectMonsterByName_1; 
                            afterParserOrEnumRuleCall();
                        

                    }
                    break;
                case 3 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2693:5: this_NewMonster_2= ruleNewMonster
                    {
                     
                            newCompositeNode(grammarAccess.getMonsterAccess().getNewMonsterParserRuleCall_2()); 
                        
                    pushFollow(FOLLOW_ruleNewMonster_in_ruleMonster6596);
                    this_NewMonster_2=ruleNewMonster();

                    state._fsp--;

                     
                            current = this_NewMonster_2; 
                            afterParserOrEnumRuleCall();
                        

                    }
                    break;

            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleMonster"


    // $ANTLR start "entryRuleSelectMonsterById"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2709:1: entryRuleSelectMonsterById returns [EObject current=null] : iv_ruleSelectMonsterById= ruleSelectMonsterById EOF ;
    public final EObject entryRuleSelectMonsterById() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleSelectMonsterById = null;


        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2710:2: (iv_ruleSelectMonsterById= ruleSelectMonsterById EOF )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2711:2: iv_ruleSelectMonsterById= ruleSelectMonsterById EOF
            {
             newCompositeNode(grammarAccess.getSelectMonsterByIdRule()); 
            pushFollow(FOLLOW_ruleSelectMonsterById_in_entryRuleSelectMonsterById6631);
            iv_ruleSelectMonsterById=ruleSelectMonsterById();

            state._fsp--;

             current =iv_ruleSelectMonsterById; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleSelectMonsterById6641); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleSelectMonsterById"


    // $ANTLR start "ruleSelectMonsterById"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2718:1: ruleSelectMonsterById returns [EObject current=null] : (otherlv_0= '#selectmonster' ( (lv_value_1_0= RULE_INT ) ) (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )* ( (lv_mods_3_0= ruleMonsterMods ) )* otherlv_4= '#end' ) ;
    public final EObject ruleSelectMonsterById() throws RecognitionException {
        EObject current = null;

        Token otherlv_0=null;
        Token lv_value_1_0=null;
        Token this_FREE_FORM_COMMENT_2=null;
        Token otherlv_4=null;
        EObject lv_mods_3_0 = null;


         enterRule(); 
            
        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2721:28: ( (otherlv_0= '#selectmonster' ( (lv_value_1_0= RULE_INT ) ) (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )* ( (lv_mods_3_0= ruleMonsterMods ) )* otherlv_4= '#end' ) )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2722:1: (otherlv_0= '#selectmonster' ( (lv_value_1_0= RULE_INT ) ) (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )* ( (lv_mods_3_0= ruleMonsterMods ) )* otherlv_4= '#end' )
            {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2722:1: (otherlv_0= '#selectmonster' ( (lv_value_1_0= RULE_INT ) ) (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )* ( (lv_mods_3_0= ruleMonsterMods ) )* otherlv_4= '#end' )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2722:3: otherlv_0= '#selectmonster' ( (lv_value_1_0= RULE_INT ) ) (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )* ( (lv_mods_3_0= ruleMonsterMods ) )* otherlv_4= '#end'
            {
            otherlv_0=(Token)match(input,85,FOLLOW_85_in_ruleSelectMonsterById6678); 

                	newLeafNode(otherlv_0, grammarAccess.getSelectMonsterByIdAccess().getSelectmonsterKeyword_0());
                
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2726:1: ( (lv_value_1_0= RULE_INT ) )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2727:1: (lv_value_1_0= RULE_INT )
            {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2727:1: (lv_value_1_0= RULE_INT )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2728:3: lv_value_1_0= RULE_INT
            {
            lv_value_1_0=(Token)match(input,RULE_INT,FOLLOW_RULE_INT_in_ruleSelectMonsterById6695); 

            			newLeafNode(lv_value_1_0, grammarAccess.getSelectMonsterByIdAccess().getValueINTTerminalRuleCall_1_0()); 
            		

            	        if (current==null) {
            	            current = createModelElement(grammarAccess.getSelectMonsterByIdRule());
            	        }
                   		setWithLastConsumed(
                   			current, 
                   			"value",
                    		lv_value_1_0, 
                    		"INT");
            	    

            }


            }

            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2744:2: (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )*
            loop34:
            do {
                int alt34=2;
                int LA34_0 = input.LA(1);

                if ( (LA34_0==RULE_FREE_FORM_COMMENT) ) {
                    alt34=1;
                }


                switch (alt34) {
            	case 1 :
            	    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2744:3: this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT
            	    {
            	    this_FREE_FORM_COMMENT_2=(Token)match(input,RULE_FREE_FORM_COMMENT,FOLLOW_RULE_FREE_FORM_COMMENT_in_ruleSelectMonsterById6712); 
            	     
            	        newLeafNode(this_FREE_FORM_COMMENT_2, grammarAccess.getSelectMonsterByIdAccess().getFREE_FORM_COMMENTTerminalRuleCall_2()); 
            	        

            	    }
            	    break;

            	default :
            	    break loop34;
                }
            } while (true);

            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2748:3: ( (lv_mods_3_0= ruleMonsterMods ) )*
            loop35:
            do {
                int alt35=2;
                int LA35_0 = input.LA(1);

                if ( (LA35_0==36||(LA35_0>=38 && LA35_0<=41)||LA35_0==46||LA35_0==74||(LA35_0>=87 && LA35_0<=252)) ) {
                    alt35=1;
                }


                switch (alt35) {
            	case 1 :
            	    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2749:1: (lv_mods_3_0= ruleMonsterMods )
            	    {
            	    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2749:1: (lv_mods_3_0= ruleMonsterMods )
            	    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2750:3: lv_mods_3_0= ruleMonsterMods
            	    {
            	     
            	    	        newCompositeNode(grammarAccess.getSelectMonsterByIdAccess().getModsMonsterModsParserRuleCall_3_0()); 
            	    	    
            	    pushFollow(FOLLOW_ruleMonsterMods_in_ruleSelectMonsterById6734);
            	    lv_mods_3_0=ruleMonsterMods();

            	    state._fsp--;


            	    	        if (current==null) {
            	    	            current = createModelElementForParent(grammarAccess.getSelectMonsterByIdRule());
            	    	        }
            	           		add(
            	           			current, 
            	           			"mods",
            	            		lv_mods_3_0, 
            	            		"MonsterMods");
            	    	        afterParserOrEnumRuleCall();
            	    	    

            	    }


            	    }
            	    break;

            	default :
            	    break loop35;
                }
            } while (true);

            otherlv_4=(Token)match(input,15,FOLLOW_15_in_ruleSelectMonsterById6747); 

                	newLeafNode(otherlv_4, grammarAccess.getSelectMonsterByIdAccess().getEndKeyword_4());
                

            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleSelectMonsterById"


    // $ANTLR start "entryRuleSelectMonsterByName"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2778:1: entryRuleSelectMonsterByName returns [EObject current=null] : iv_ruleSelectMonsterByName= ruleSelectMonsterByName EOF ;
    public final EObject entryRuleSelectMonsterByName() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleSelectMonsterByName = null;


        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2779:2: (iv_ruleSelectMonsterByName= ruleSelectMonsterByName EOF )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2780:2: iv_ruleSelectMonsterByName= ruleSelectMonsterByName EOF
            {
             newCompositeNode(grammarAccess.getSelectMonsterByNameRule()); 
            pushFollow(FOLLOW_ruleSelectMonsterByName_in_entryRuleSelectMonsterByName6783);
            iv_ruleSelectMonsterByName=ruleSelectMonsterByName();

            state._fsp--;

             current =iv_ruleSelectMonsterByName; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleSelectMonsterByName6793); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleSelectMonsterByName"


    // $ANTLR start "ruleSelectMonsterByName"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2787:1: ruleSelectMonsterByName returns [EObject current=null] : (otherlv_0= '#selectmonster' ( (lv_value_1_0= RULE_STRING ) ) (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )* ( (lv_mods_3_0= ruleMonsterMods ) )* otherlv_4= '#end' ) ;
    public final EObject ruleSelectMonsterByName() throws RecognitionException {
        EObject current = null;

        Token otherlv_0=null;
        Token lv_value_1_0=null;
        Token this_FREE_FORM_COMMENT_2=null;
        Token otherlv_4=null;
        EObject lv_mods_3_0 = null;


         enterRule(); 
            
        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2790:28: ( (otherlv_0= '#selectmonster' ( (lv_value_1_0= RULE_STRING ) ) (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )* ( (lv_mods_3_0= ruleMonsterMods ) )* otherlv_4= '#end' ) )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2791:1: (otherlv_0= '#selectmonster' ( (lv_value_1_0= RULE_STRING ) ) (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )* ( (lv_mods_3_0= ruleMonsterMods ) )* otherlv_4= '#end' )
            {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2791:1: (otherlv_0= '#selectmonster' ( (lv_value_1_0= RULE_STRING ) ) (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )* ( (lv_mods_3_0= ruleMonsterMods ) )* otherlv_4= '#end' )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2791:3: otherlv_0= '#selectmonster' ( (lv_value_1_0= RULE_STRING ) ) (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )* ( (lv_mods_3_0= ruleMonsterMods ) )* otherlv_4= '#end'
            {
            otherlv_0=(Token)match(input,85,FOLLOW_85_in_ruleSelectMonsterByName6830); 

                	newLeafNode(otherlv_0, grammarAccess.getSelectMonsterByNameAccess().getSelectmonsterKeyword_0());
                
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2795:1: ( (lv_value_1_0= RULE_STRING ) )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2796:1: (lv_value_1_0= RULE_STRING )
            {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2796:1: (lv_value_1_0= RULE_STRING )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2797:3: lv_value_1_0= RULE_STRING
            {
            lv_value_1_0=(Token)match(input,RULE_STRING,FOLLOW_RULE_STRING_in_ruleSelectMonsterByName6847); 

            			newLeafNode(lv_value_1_0, grammarAccess.getSelectMonsterByNameAccess().getValueSTRINGTerminalRuleCall_1_0()); 
            		

            	        if (current==null) {
            	            current = createModelElement(grammarAccess.getSelectMonsterByNameRule());
            	        }
                   		setWithLastConsumed(
                   			current, 
                   			"value",
                    		lv_value_1_0, 
                    		"STRING");
            	    

            }


            }

            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2813:2: (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )*
            loop36:
            do {
                int alt36=2;
                int LA36_0 = input.LA(1);

                if ( (LA36_0==RULE_FREE_FORM_COMMENT) ) {
                    alt36=1;
                }


                switch (alt36) {
            	case 1 :
            	    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2813:3: this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT
            	    {
            	    this_FREE_FORM_COMMENT_2=(Token)match(input,RULE_FREE_FORM_COMMENT,FOLLOW_RULE_FREE_FORM_COMMENT_in_ruleSelectMonsterByName6864); 
            	     
            	        newLeafNode(this_FREE_FORM_COMMENT_2, grammarAccess.getSelectMonsterByNameAccess().getFREE_FORM_COMMENTTerminalRuleCall_2()); 
            	        

            	    }
            	    break;

            	default :
            	    break loop36;
                }
            } while (true);

            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2817:3: ( (lv_mods_3_0= ruleMonsterMods ) )*
            loop37:
            do {
                int alt37=2;
                int LA37_0 = input.LA(1);

                if ( (LA37_0==36||(LA37_0>=38 && LA37_0<=41)||LA37_0==46||LA37_0==74||(LA37_0>=87 && LA37_0<=252)) ) {
                    alt37=1;
                }


                switch (alt37) {
            	case 1 :
            	    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2818:1: (lv_mods_3_0= ruleMonsterMods )
            	    {
            	    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2818:1: (lv_mods_3_0= ruleMonsterMods )
            	    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2819:3: lv_mods_3_0= ruleMonsterMods
            	    {
            	     
            	    	        newCompositeNode(grammarAccess.getSelectMonsterByNameAccess().getModsMonsterModsParserRuleCall_3_0()); 
            	    	    
            	    pushFollow(FOLLOW_ruleMonsterMods_in_ruleSelectMonsterByName6886);
            	    lv_mods_3_0=ruleMonsterMods();

            	    state._fsp--;


            	    	        if (current==null) {
            	    	            current = createModelElementForParent(grammarAccess.getSelectMonsterByNameRule());
            	    	        }
            	           		add(
            	           			current, 
            	           			"mods",
            	            		lv_mods_3_0, 
            	            		"MonsterMods");
            	    	        afterParserOrEnumRuleCall();
            	    	    

            	    }


            	    }
            	    break;

            	default :
            	    break loop37;
                }
            } while (true);

            otherlv_4=(Token)match(input,15,FOLLOW_15_in_ruleSelectMonsterByName6899); 

                	newLeafNode(otherlv_4, grammarAccess.getSelectMonsterByNameAccess().getEndKeyword_4());
                

            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleSelectMonsterByName"


    // $ANTLR start "entryRuleNewMonster"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2847:1: entryRuleNewMonster returns [EObject current=null] : iv_ruleNewMonster= ruleNewMonster EOF ;
    public final EObject entryRuleNewMonster() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleNewMonster = null;


        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2848:2: (iv_ruleNewMonster= ruleNewMonster EOF )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2849:2: iv_ruleNewMonster= ruleNewMonster EOF
            {
             newCompositeNode(grammarAccess.getNewMonsterRule()); 
            pushFollow(FOLLOW_ruleNewMonster_in_entryRuleNewMonster6935);
            iv_ruleNewMonster=ruleNewMonster();

            state._fsp--;

             current =iv_ruleNewMonster; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleNewMonster6945); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleNewMonster"


    // $ANTLR start "ruleNewMonster"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2856:1: ruleNewMonster returns [EObject current=null] : (otherlv_0= '#newmonster' ( (lv_value_1_0= RULE_INT ) ) (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )* ( (lv_mods_3_0= ruleMonsterMods ) )* otherlv_4= '#end' ) ;
    public final EObject ruleNewMonster() throws RecognitionException {
        EObject current = null;

        Token otherlv_0=null;
        Token lv_value_1_0=null;
        Token this_FREE_FORM_COMMENT_2=null;
        Token otherlv_4=null;
        EObject lv_mods_3_0 = null;


         enterRule(); 
            
        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2859:28: ( (otherlv_0= '#newmonster' ( (lv_value_1_0= RULE_INT ) ) (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )* ( (lv_mods_3_0= ruleMonsterMods ) )* otherlv_4= '#end' ) )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2860:1: (otherlv_0= '#newmonster' ( (lv_value_1_0= RULE_INT ) ) (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )* ( (lv_mods_3_0= ruleMonsterMods ) )* otherlv_4= '#end' )
            {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2860:1: (otherlv_0= '#newmonster' ( (lv_value_1_0= RULE_INT ) ) (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )* ( (lv_mods_3_0= ruleMonsterMods ) )* otherlv_4= '#end' )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2860:3: otherlv_0= '#newmonster' ( (lv_value_1_0= RULE_INT ) ) (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )* ( (lv_mods_3_0= ruleMonsterMods ) )* otherlv_4= '#end'
            {
            otherlv_0=(Token)match(input,86,FOLLOW_86_in_ruleNewMonster6982); 

                	newLeafNode(otherlv_0, grammarAccess.getNewMonsterAccess().getNewmonsterKeyword_0());
                
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2864:1: ( (lv_value_1_0= RULE_INT ) )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2865:1: (lv_value_1_0= RULE_INT )
            {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2865:1: (lv_value_1_0= RULE_INT )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2866:3: lv_value_1_0= RULE_INT
            {
            lv_value_1_0=(Token)match(input,RULE_INT,FOLLOW_RULE_INT_in_ruleNewMonster6999); 

            			newLeafNode(lv_value_1_0, grammarAccess.getNewMonsterAccess().getValueINTTerminalRuleCall_1_0()); 
            		

            	        if (current==null) {
            	            current = createModelElement(grammarAccess.getNewMonsterRule());
            	        }
                   		setWithLastConsumed(
                   			current, 
                   			"value",
                    		lv_value_1_0, 
                    		"INT");
            	    

            }


            }

            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2882:2: (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )*
            loop38:
            do {
                int alt38=2;
                int LA38_0 = input.LA(1);

                if ( (LA38_0==RULE_FREE_FORM_COMMENT) ) {
                    alt38=1;
                }


                switch (alt38) {
            	case 1 :
            	    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2882:3: this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT
            	    {
            	    this_FREE_FORM_COMMENT_2=(Token)match(input,RULE_FREE_FORM_COMMENT,FOLLOW_RULE_FREE_FORM_COMMENT_in_ruleNewMonster7016); 
            	     
            	        newLeafNode(this_FREE_FORM_COMMENT_2, grammarAccess.getNewMonsterAccess().getFREE_FORM_COMMENTTerminalRuleCall_2()); 
            	        

            	    }
            	    break;

            	default :
            	    break loop38;
                }
            } while (true);

            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2886:3: ( (lv_mods_3_0= ruleMonsterMods ) )*
            loop39:
            do {
                int alt39=2;
                int LA39_0 = input.LA(1);

                if ( (LA39_0==36||(LA39_0>=38 && LA39_0<=41)||LA39_0==46||LA39_0==74||(LA39_0>=87 && LA39_0<=252)) ) {
                    alt39=1;
                }


                switch (alt39) {
            	case 1 :
            	    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2887:1: (lv_mods_3_0= ruleMonsterMods )
            	    {
            	    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2887:1: (lv_mods_3_0= ruleMonsterMods )
            	    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2888:3: lv_mods_3_0= ruleMonsterMods
            	    {
            	     
            	    	        newCompositeNode(grammarAccess.getNewMonsterAccess().getModsMonsterModsParserRuleCall_3_0()); 
            	    	    
            	    pushFollow(FOLLOW_ruleMonsterMods_in_ruleNewMonster7038);
            	    lv_mods_3_0=ruleMonsterMods();

            	    state._fsp--;


            	    	        if (current==null) {
            	    	            current = createModelElementForParent(grammarAccess.getNewMonsterRule());
            	    	        }
            	           		add(
            	           			current, 
            	           			"mods",
            	            		lv_mods_3_0, 
            	            		"MonsterMods");
            	    	        afterParserOrEnumRuleCall();
            	    	    

            	    }


            	    }
            	    break;

            	default :
            	    break loop39;
                }
            } while (true);

            otherlv_4=(Token)match(input,15,FOLLOW_15_in_ruleNewMonster7051); 

                	newLeafNode(otherlv_4, grammarAccess.getNewMonsterAccess().getEndKeyword_4());
                

            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleNewMonster"


    // $ANTLR start "entryRuleMonsterMods"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2916:1: entryRuleMonsterMods returns [EObject current=null] : iv_ruleMonsterMods= ruleMonsterMods EOF ;
    public final EObject entryRuleMonsterMods() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleMonsterMods = null;


        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2917:2: (iv_ruleMonsterMods= ruleMonsterMods EOF )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2918:2: iv_ruleMonsterMods= ruleMonsterMods EOF
            {
             newCompositeNode(grammarAccess.getMonsterModsRule()); 
            pushFollow(FOLLOW_ruleMonsterMods_in_entryRuleMonsterMods7087);
            iv_ruleMonsterMods=ruleMonsterMods();

            state._fsp--;

             current =iv_ruleMonsterMods; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleMonsterMods7097); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleMonsterMods"


    // $ANTLR start "ruleMonsterMods"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2925:1: ruleMonsterMods returns [EObject current=null] : (this_MonsterPattern1_0= ruleMonsterPattern1 | this_MonsterPattern2_1= ruleMonsterPattern2 | this_MonsterPattern3_2= ruleMonsterPattern3 | this_MonsterPattern4_3= ruleMonsterPattern4 | this_MonsterPattern5_4= ruleMonsterPattern5 | this_MonsterPattern6_5= ruleMonsterPattern6 ) ;
    public final EObject ruleMonsterMods() throws RecognitionException {
        EObject current = null;

        EObject this_MonsterPattern1_0 = null;

        EObject this_MonsterPattern2_1 = null;

        EObject this_MonsterPattern3_2 = null;

        EObject this_MonsterPattern4_3 = null;

        EObject this_MonsterPattern5_4 = null;

        EObject this_MonsterPattern6_5 = null;


         enterRule(); 
            
        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2928:28: ( (this_MonsterPattern1_0= ruleMonsterPattern1 | this_MonsterPattern2_1= ruleMonsterPattern2 | this_MonsterPattern3_2= ruleMonsterPattern3 | this_MonsterPattern4_3= ruleMonsterPattern4 | this_MonsterPattern5_4= ruleMonsterPattern5 | this_MonsterPattern6_5= ruleMonsterPattern6 ) )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2929:1: (this_MonsterPattern1_0= ruleMonsterPattern1 | this_MonsterPattern2_1= ruleMonsterPattern2 | this_MonsterPattern3_2= ruleMonsterPattern3 | this_MonsterPattern4_3= ruleMonsterPattern4 | this_MonsterPattern5_4= ruleMonsterPattern5 | this_MonsterPattern6_5= ruleMonsterPattern6 )
            {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2929:1: (this_MonsterPattern1_0= ruleMonsterPattern1 | this_MonsterPattern2_1= ruleMonsterPattern2 | this_MonsterPattern3_2= ruleMonsterPattern3 | this_MonsterPattern4_3= ruleMonsterPattern4 | this_MonsterPattern5_4= ruleMonsterPattern5 | this_MonsterPattern6_5= ruleMonsterPattern6 )
            int alt40=6;
            switch ( input.LA(1) ) {
            case 36:
            case 87:
            case 88:
            case 89:
                {
                alt40=1;
                }
                break;
            case 38:
            case 39:
            case 40:
            case 41:
            case 46:
            case 90:
            case 91:
            case 92:
            case 93:
            case 94:
            case 95:
            case 96:
            case 97:
            case 98:
            case 99:
            case 100:
            case 101:
            case 102:
            case 103:
            case 104:
            case 105:
            case 106:
            case 107:
            case 108:
            case 109:
            case 110:
            case 111:
            case 112:
            case 113:
            case 114:
            case 115:
            case 116:
            case 117:
            case 118:
            case 119:
            case 120:
            case 121:
            case 122:
            case 123:
            case 124:
            case 125:
            case 126:
            case 127:
            case 128:
            case 129:
            case 130:
            case 131:
            case 132:
            case 133:
            case 134:
            case 135:
            case 136:
            case 137:
            case 138:
            case 139:
            case 140:
            case 141:
            case 142:
            case 143:
            case 144:
            case 145:
            case 146:
            case 147:
            case 148:
            case 149:
            case 150:
            case 151:
            case 152:
            case 153:
            case 154:
            case 155:
            case 156:
            case 157:
            case 158:
            case 159:
            case 160:
            case 161:
            case 162:
                {
                alt40=2;
                }
                break;
            case 163:
            case 164:
            case 165:
            case 166:
                {
                alt40=3;
                }
                break;
            case 167:
            case 168:
            case 169:
            case 170:
            case 171:
            case 172:
            case 173:
            case 174:
            case 175:
            case 176:
            case 177:
            case 178:
            case 179:
            case 180:
            case 181:
            case 182:
            case 183:
            case 184:
            case 185:
            case 186:
            case 187:
            case 188:
            case 189:
            case 190:
            case 191:
            case 192:
            case 193:
            case 194:
            case 195:
            case 196:
            case 197:
            case 198:
            case 199:
            case 200:
            case 201:
            case 202:
            case 203:
            case 204:
            case 205:
            case 206:
            case 207:
            case 208:
            case 209:
            case 210:
            case 211:
            case 212:
            case 213:
            case 214:
            case 215:
            case 216:
            case 217:
            case 218:
            case 219:
            case 220:
            case 221:
            case 222:
            case 223:
            case 224:
            case 225:
            case 226:
            case 227:
            case 228:
            case 229:
                {
                alt40=4;
                }
                break;
            case 230:
            case 231:
            case 232:
            case 233:
            case 234:
            case 235:
            case 236:
            case 237:
            case 238:
            case 239:
            case 240:
            case 241:
            case 242:
            case 243:
            case 244:
            case 245:
            case 246:
            case 247:
            case 248:
            case 249:
            case 250:
                {
                alt40=5;
                }
                break;
            case 74:
            case 251:
            case 252:
                {
                alt40=6;
                }
                break;
            default:
                NoViableAltException nvae =
                    new NoViableAltException("", 40, 0, input);

                throw nvae;
            }

            switch (alt40) {
                case 1 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2930:5: this_MonsterPattern1_0= ruleMonsterPattern1
                    {
                     
                            newCompositeNode(grammarAccess.getMonsterModsAccess().getMonsterPattern1ParserRuleCall_0()); 
                        
                    pushFollow(FOLLOW_ruleMonsterPattern1_in_ruleMonsterMods7144);
                    this_MonsterPattern1_0=ruleMonsterPattern1();

                    state._fsp--;

                     
                            current = this_MonsterPattern1_0; 
                            afterParserOrEnumRuleCall();
                        

                    }
                    break;
                case 2 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2940:5: this_MonsterPattern2_1= ruleMonsterPattern2
                    {
                     
                            newCompositeNode(grammarAccess.getMonsterModsAccess().getMonsterPattern2ParserRuleCall_1()); 
                        
                    pushFollow(FOLLOW_ruleMonsterPattern2_in_ruleMonsterMods7171);
                    this_MonsterPattern2_1=ruleMonsterPattern2();

                    state._fsp--;

                     
                            current = this_MonsterPattern2_1; 
                            afterParserOrEnumRuleCall();
                        

                    }
                    break;
                case 3 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2950:5: this_MonsterPattern3_2= ruleMonsterPattern3
                    {
                     
                            newCompositeNode(grammarAccess.getMonsterModsAccess().getMonsterPattern3ParserRuleCall_2()); 
                        
                    pushFollow(FOLLOW_ruleMonsterPattern3_in_ruleMonsterMods7198);
                    this_MonsterPattern3_2=ruleMonsterPattern3();

                    state._fsp--;

                     
                            current = this_MonsterPattern3_2; 
                            afterParserOrEnumRuleCall();
                        

                    }
                    break;
                case 4 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2960:5: this_MonsterPattern4_3= ruleMonsterPattern4
                    {
                     
                            newCompositeNode(grammarAccess.getMonsterModsAccess().getMonsterPattern4ParserRuleCall_3()); 
                        
                    pushFollow(FOLLOW_ruleMonsterPattern4_in_ruleMonsterMods7225);
                    this_MonsterPattern4_3=ruleMonsterPattern4();

                    state._fsp--;

                     
                            current = this_MonsterPattern4_3; 
                            afterParserOrEnumRuleCall();
                        

                    }
                    break;
                case 5 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2970:5: this_MonsterPattern5_4= ruleMonsterPattern5
                    {
                     
                            newCompositeNode(grammarAccess.getMonsterModsAccess().getMonsterPattern5ParserRuleCall_4()); 
                        
                    pushFollow(FOLLOW_ruleMonsterPattern5_in_ruleMonsterMods7252);
                    this_MonsterPattern5_4=ruleMonsterPattern5();

                    state._fsp--;

                     
                            current = this_MonsterPattern5_4; 
                            afterParserOrEnumRuleCall();
                        

                    }
                    break;
                case 6 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2980:5: this_MonsterPattern6_5= ruleMonsterPattern6
                    {
                     
                            newCompositeNode(grammarAccess.getMonsterModsAccess().getMonsterPattern6ParserRuleCall_5()); 
                        
                    pushFollow(FOLLOW_ruleMonsterPattern6_in_ruleMonsterMods7279);
                    this_MonsterPattern6_5=ruleMonsterPattern6();

                    state._fsp--;

                     
                            current = this_MonsterPattern6_5; 
                            afterParserOrEnumRuleCall();
                        

                    }
                    break;

            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleMonsterMods"


    // $ANTLR start "entryRuleMonsterPattern1"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2996:1: entryRuleMonsterPattern1 returns [EObject current=null] : iv_ruleMonsterPattern1= ruleMonsterPattern1 EOF ;
    public final EObject entryRuleMonsterPattern1() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleMonsterPattern1 = null;


        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2997:2: (iv_ruleMonsterPattern1= ruleMonsterPattern1 EOF )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:2998:2: iv_ruleMonsterPattern1= ruleMonsterPattern1 EOF
            {
             newCompositeNode(grammarAccess.getMonsterPattern1Rule()); 
            pushFollow(FOLLOW_ruleMonsterPattern1_in_entryRuleMonsterPattern17314);
            iv_ruleMonsterPattern1=ruleMonsterPattern1();

            state._fsp--;

             current =iv_ruleMonsterPattern1; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleMonsterPattern17324); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleMonsterPattern1"


    // $ANTLR start "ruleMonsterPattern1"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3005:1: ruleMonsterPattern1 returns [EObject current=null] : (this_MonsterInst1_0= ruleMonsterInst1 ( (lv_value_1_0= RULE_STRING ) ) (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )* ) ;
    public final EObject ruleMonsterPattern1() throws RecognitionException {
        EObject current = null;

        Token lv_value_1_0=null;
        Token this_FREE_FORM_COMMENT_2=null;
        EObject this_MonsterInst1_0 = null;


         enterRule(); 
            
        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3008:28: ( (this_MonsterInst1_0= ruleMonsterInst1 ( (lv_value_1_0= RULE_STRING ) ) (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )* ) )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3009:1: (this_MonsterInst1_0= ruleMonsterInst1 ( (lv_value_1_0= RULE_STRING ) ) (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )* )
            {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3009:1: (this_MonsterInst1_0= ruleMonsterInst1 ( (lv_value_1_0= RULE_STRING ) ) (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )* )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3010:5: this_MonsterInst1_0= ruleMonsterInst1 ( (lv_value_1_0= RULE_STRING ) ) (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )*
            {
             
                    newCompositeNode(grammarAccess.getMonsterPattern1Access().getMonsterInst1ParserRuleCall_0()); 
                
            pushFollow(FOLLOW_ruleMonsterInst1_in_ruleMonsterPattern17371);
            this_MonsterInst1_0=ruleMonsterInst1();

            state._fsp--;

             
                    current = this_MonsterInst1_0; 
                    afterParserOrEnumRuleCall();
                
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3018:1: ( (lv_value_1_0= RULE_STRING ) )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3019:1: (lv_value_1_0= RULE_STRING )
            {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3019:1: (lv_value_1_0= RULE_STRING )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3020:3: lv_value_1_0= RULE_STRING
            {
            lv_value_1_0=(Token)match(input,RULE_STRING,FOLLOW_RULE_STRING_in_ruleMonsterPattern17387); 

            			newLeafNode(lv_value_1_0, grammarAccess.getMonsterPattern1Access().getValueSTRINGTerminalRuleCall_1_0()); 
            		

            	        if (current==null) {
            	            current = createModelElement(grammarAccess.getMonsterPattern1Rule());
            	        }
                   		setWithLastConsumed(
                   			current, 
                   			"value",
                    		lv_value_1_0, 
                    		"STRING");
            	    

            }


            }

            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3036:2: (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )*
            loop41:
            do {
                int alt41=2;
                int LA41_0 = input.LA(1);

                if ( (LA41_0==RULE_FREE_FORM_COMMENT) ) {
                    alt41=1;
                }


                switch (alt41) {
            	case 1 :
            	    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3036:3: this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT
            	    {
            	    this_FREE_FORM_COMMENT_2=(Token)match(input,RULE_FREE_FORM_COMMENT,FOLLOW_RULE_FREE_FORM_COMMENT_in_ruleMonsterPattern17404); 
            	     
            	        newLeafNode(this_FREE_FORM_COMMENT_2, grammarAccess.getMonsterPattern1Access().getFREE_FORM_COMMENTTerminalRuleCall_2()); 
            	        

            	    }
            	    break;

            	default :
            	    break loop41;
                }
            } while (true);


            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleMonsterPattern1"


    // $ANTLR start "entryRuleMonsterPattern2"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3048:1: entryRuleMonsterPattern2 returns [EObject current=null] : iv_ruleMonsterPattern2= ruleMonsterPattern2 EOF ;
    public final EObject entryRuleMonsterPattern2() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleMonsterPattern2 = null;


        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3049:2: (iv_ruleMonsterPattern2= ruleMonsterPattern2 EOF )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3050:2: iv_ruleMonsterPattern2= ruleMonsterPattern2 EOF
            {
             newCompositeNode(grammarAccess.getMonsterPattern2Rule()); 
            pushFollow(FOLLOW_ruleMonsterPattern2_in_entryRuleMonsterPattern27441);
            iv_ruleMonsterPattern2=ruleMonsterPattern2();

            state._fsp--;

             current =iv_ruleMonsterPattern2; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleMonsterPattern27451); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleMonsterPattern2"


    // $ANTLR start "ruleMonsterPattern2"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3057:1: ruleMonsterPattern2 returns [EObject current=null] : (this_MonsterInst2_0= ruleMonsterInst2 ( (lv_value_1_0= RULE_INT ) ) (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )* ) ;
    public final EObject ruleMonsterPattern2() throws RecognitionException {
        EObject current = null;

        Token lv_value_1_0=null;
        Token this_FREE_FORM_COMMENT_2=null;
        EObject this_MonsterInst2_0 = null;


         enterRule(); 
            
        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3060:28: ( (this_MonsterInst2_0= ruleMonsterInst2 ( (lv_value_1_0= RULE_INT ) ) (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )* ) )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3061:1: (this_MonsterInst2_0= ruleMonsterInst2 ( (lv_value_1_0= RULE_INT ) ) (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )* )
            {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3061:1: (this_MonsterInst2_0= ruleMonsterInst2 ( (lv_value_1_0= RULE_INT ) ) (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )* )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3062:5: this_MonsterInst2_0= ruleMonsterInst2 ( (lv_value_1_0= RULE_INT ) ) (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )*
            {
             
                    newCompositeNode(grammarAccess.getMonsterPattern2Access().getMonsterInst2ParserRuleCall_0()); 
                
            pushFollow(FOLLOW_ruleMonsterInst2_in_ruleMonsterPattern27498);
            this_MonsterInst2_0=ruleMonsterInst2();

            state._fsp--;

             
                    current = this_MonsterInst2_0; 
                    afterParserOrEnumRuleCall();
                
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3070:1: ( (lv_value_1_0= RULE_INT ) )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3071:1: (lv_value_1_0= RULE_INT )
            {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3071:1: (lv_value_1_0= RULE_INT )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3072:3: lv_value_1_0= RULE_INT
            {
            lv_value_1_0=(Token)match(input,RULE_INT,FOLLOW_RULE_INT_in_ruleMonsterPattern27514); 

            			newLeafNode(lv_value_1_0, grammarAccess.getMonsterPattern2Access().getValueINTTerminalRuleCall_1_0()); 
            		

            	        if (current==null) {
            	            current = createModelElement(grammarAccess.getMonsterPattern2Rule());
            	        }
                   		setWithLastConsumed(
                   			current, 
                   			"value",
                    		lv_value_1_0, 
                    		"INT");
            	    

            }


            }

            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3088:2: (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )*
            loop42:
            do {
                int alt42=2;
                int LA42_0 = input.LA(1);

                if ( (LA42_0==RULE_FREE_FORM_COMMENT) ) {
                    alt42=1;
                }


                switch (alt42) {
            	case 1 :
            	    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3088:3: this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT
            	    {
            	    this_FREE_FORM_COMMENT_2=(Token)match(input,RULE_FREE_FORM_COMMENT,FOLLOW_RULE_FREE_FORM_COMMENT_in_ruleMonsterPattern27531); 
            	     
            	        newLeafNode(this_FREE_FORM_COMMENT_2, grammarAccess.getMonsterPattern2Access().getFREE_FORM_COMMENTTerminalRuleCall_2()); 
            	        

            	    }
            	    break;

            	default :
            	    break loop42;
                }
            } while (true);


            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleMonsterPattern2"


    // $ANTLR start "entryRuleMonsterPattern3"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3100:1: entryRuleMonsterPattern3 returns [EObject current=null] : iv_ruleMonsterPattern3= ruleMonsterPattern3 EOF ;
    public final EObject entryRuleMonsterPattern3() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleMonsterPattern3 = null;


        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3101:2: (iv_ruleMonsterPattern3= ruleMonsterPattern3 EOF )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3102:2: iv_ruleMonsterPattern3= ruleMonsterPattern3 EOF
            {
             newCompositeNode(grammarAccess.getMonsterPattern3Rule()); 
            pushFollow(FOLLOW_ruleMonsterPattern3_in_entryRuleMonsterPattern37568);
            iv_ruleMonsterPattern3=ruleMonsterPattern3();

            state._fsp--;

             current =iv_ruleMonsterPattern3; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleMonsterPattern37578); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleMonsterPattern3"


    // $ANTLR start "ruleMonsterPattern3"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3109:1: ruleMonsterPattern3 returns [EObject current=null] : (this_MonsterInst3_0= ruleMonsterInst3 ( (lv_value1_1_0= RULE_INT ) ) ( (lv_value2_2_0= RULE_INT ) ) (this_FREE_FORM_COMMENT_3= RULE_FREE_FORM_COMMENT )* ) ;
    public final EObject ruleMonsterPattern3() throws RecognitionException {
        EObject current = null;

        Token lv_value1_1_0=null;
        Token lv_value2_2_0=null;
        Token this_FREE_FORM_COMMENT_3=null;
        EObject this_MonsterInst3_0 = null;


         enterRule(); 
            
        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3112:28: ( (this_MonsterInst3_0= ruleMonsterInst3 ( (lv_value1_1_0= RULE_INT ) ) ( (lv_value2_2_0= RULE_INT ) ) (this_FREE_FORM_COMMENT_3= RULE_FREE_FORM_COMMENT )* ) )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3113:1: (this_MonsterInst3_0= ruleMonsterInst3 ( (lv_value1_1_0= RULE_INT ) ) ( (lv_value2_2_0= RULE_INT ) ) (this_FREE_FORM_COMMENT_3= RULE_FREE_FORM_COMMENT )* )
            {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3113:1: (this_MonsterInst3_0= ruleMonsterInst3 ( (lv_value1_1_0= RULE_INT ) ) ( (lv_value2_2_0= RULE_INT ) ) (this_FREE_FORM_COMMENT_3= RULE_FREE_FORM_COMMENT )* )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3114:5: this_MonsterInst3_0= ruleMonsterInst3 ( (lv_value1_1_0= RULE_INT ) ) ( (lv_value2_2_0= RULE_INT ) ) (this_FREE_FORM_COMMENT_3= RULE_FREE_FORM_COMMENT )*
            {
             
                    newCompositeNode(grammarAccess.getMonsterPattern3Access().getMonsterInst3ParserRuleCall_0()); 
                
            pushFollow(FOLLOW_ruleMonsterInst3_in_ruleMonsterPattern37625);
            this_MonsterInst3_0=ruleMonsterInst3();

            state._fsp--;

             
                    current = this_MonsterInst3_0; 
                    afterParserOrEnumRuleCall();
                
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3122:1: ( (lv_value1_1_0= RULE_INT ) )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3123:1: (lv_value1_1_0= RULE_INT )
            {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3123:1: (lv_value1_1_0= RULE_INT )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3124:3: lv_value1_1_0= RULE_INT
            {
            lv_value1_1_0=(Token)match(input,RULE_INT,FOLLOW_RULE_INT_in_ruleMonsterPattern37641); 

            			newLeafNode(lv_value1_1_0, grammarAccess.getMonsterPattern3Access().getValue1INTTerminalRuleCall_1_0()); 
            		

            	        if (current==null) {
            	            current = createModelElement(grammarAccess.getMonsterPattern3Rule());
            	        }
                   		setWithLastConsumed(
                   			current, 
                   			"value1",
                    		lv_value1_1_0, 
                    		"INT");
            	    

            }


            }

            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3140:2: ( (lv_value2_2_0= RULE_INT ) )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3141:1: (lv_value2_2_0= RULE_INT )
            {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3141:1: (lv_value2_2_0= RULE_INT )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3142:3: lv_value2_2_0= RULE_INT
            {
            lv_value2_2_0=(Token)match(input,RULE_INT,FOLLOW_RULE_INT_in_ruleMonsterPattern37663); 

            			newLeafNode(lv_value2_2_0, grammarAccess.getMonsterPattern3Access().getValue2INTTerminalRuleCall_2_0()); 
            		

            	        if (current==null) {
            	            current = createModelElement(grammarAccess.getMonsterPattern3Rule());
            	        }
                   		setWithLastConsumed(
                   			current, 
                   			"value2",
                    		lv_value2_2_0, 
                    		"INT");
            	    

            }


            }

            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3158:2: (this_FREE_FORM_COMMENT_3= RULE_FREE_FORM_COMMENT )*
            loop43:
            do {
                int alt43=2;
                int LA43_0 = input.LA(1);

                if ( (LA43_0==RULE_FREE_FORM_COMMENT) ) {
                    alt43=1;
                }


                switch (alt43) {
            	case 1 :
            	    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3158:3: this_FREE_FORM_COMMENT_3= RULE_FREE_FORM_COMMENT
            	    {
            	    this_FREE_FORM_COMMENT_3=(Token)match(input,RULE_FREE_FORM_COMMENT,FOLLOW_RULE_FREE_FORM_COMMENT_in_ruleMonsterPattern37680); 
            	     
            	        newLeafNode(this_FREE_FORM_COMMENT_3, grammarAccess.getMonsterPattern3Access().getFREE_FORM_COMMENTTerminalRuleCall_3()); 
            	        

            	    }
            	    break;

            	default :
            	    break loop43;
                }
            } while (true);


            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleMonsterPattern3"


    // $ANTLR start "entryRuleMonsterPattern4"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3170:1: entryRuleMonsterPattern4 returns [EObject current=null] : iv_ruleMonsterPattern4= ruleMonsterPattern4 EOF ;
    public final EObject entryRuleMonsterPattern4() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleMonsterPattern4 = null;


        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3171:2: (iv_ruleMonsterPattern4= ruleMonsterPattern4 EOF )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3172:2: iv_ruleMonsterPattern4= ruleMonsterPattern4 EOF
            {
             newCompositeNode(grammarAccess.getMonsterPattern4Rule()); 
            pushFollow(FOLLOW_ruleMonsterPattern4_in_entryRuleMonsterPattern47717);
            iv_ruleMonsterPattern4=ruleMonsterPattern4();

            state._fsp--;

             current =iv_ruleMonsterPattern4; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleMonsterPattern47727); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleMonsterPattern4"


    // $ANTLR start "ruleMonsterPattern4"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3179:1: ruleMonsterPattern4 returns [EObject current=null] : (this_MonsterInst4_0= ruleMonsterInst4 (this_FREE_FORM_COMMENT_1= RULE_FREE_FORM_COMMENT )* ) ;
    public final EObject ruleMonsterPattern4() throws RecognitionException {
        EObject current = null;

        Token this_FREE_FORM_COMMENT_1=null;
        EObject this_MonsterInst4_0 = null;


         enterRule(); 
            
        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3182:28: ( (this_MonsterInst4_0= ruleMonsterInst4 (this_FREE_FORM_COMMENT_1= RULE_FREE_FORM_COMMENT )* ) )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3183:1: (this_MonsterInst4_0= ruleMonsterInst4 (this_FREE_FORM_COMMENT_1= RULE_FREE_FORM_COMMENT )* )
            {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3183:1: (this_MonsterInst4_0= ruleMonsterInst4 (this_FREE_FORM_COMMENT_1= RULE_FREE_FORM_COMMENT )* )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3184:5: this_MonsterInst4_0= ruleMonsterInst4 (this_FREE_FORM_COMMENT_1= RULE_FREE_FORM_COMMENT )*
            {
             
                    newCompositeNode(grammarAccess.getMonsterPattern4Access().getMonsterInst4ParserRuleCall_0()); 
                
            pushFollow(FOLLOW_ruleMonsterInst4_in_ruleMonsterPattern47774);
            this_MonsterInst4_0=ruleMonsterInst4();

            state._fsp--;

             
                    current = this_MonsterInst4_0; 
                    afterParserOrEnumRuleCall();
                
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3192:1: (this_FREE_FORM_COMMENT_1= RULE_FREE_FORM_COMMENT )*
            loop44:
            do {
                int alt44=2;
                int LA44_0 = input.LA(1);

                if ( (LA44_0==RULE_FREE_FORM_COMMENT) ) {
                    alt44=1;
                }


                switch (alt44) {
            	case 1 :
            	    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3192:2: this_FREE_FORM_COMMENT_1= RULE_FREE_FORM_COMMENT
            	    {
            	    this_FREE_FORM_COMMENT_1=(Token)match(input,RULE_FREE_FORM_COMMENT,FOLLOW_RULE_FREE_FORM_COMMENT_in_ruleMonsterPattern47785); 
            	     
            	        newLeafNode(this_FREE_FORM_COMMENT_1, grammarAccess.getMonsterPattern4Access().getFREE_FORM_COMMENTTerminalRuleCall_1()); 
            	        

            	    }
            	    break;

            	default :
            	    break loop44;
                }
            } while (true);


            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleMonsterPattern4"


    // $ANTLR start "entryRuleMonsterPattern5"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3204:1: entryRuleMonsterPattern5 returns [EObject current=null] : iv_ruleMonsterPattern5= ruleMonsterPattern5 EOF ;
    public final EObject entryRuleMonsterPattern5() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleMonsterPattern5 = null;


        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3205:2: (iv_ruleMonsterPattern5= ruleMonsterPattern5 EOF )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3206:2: iv_ruleMonsterPattern5= ruleMonsterPattern5 EOF
            {
             newCompositeNode(grammarAccess.getMonsterPattern5Rule()); 
            pushFollow(FOLLOW_ruleMonsterPattern5_in_entryRuleMonsterPattern57822);
            iv_ruleMonsterPattern5=ruleMonsterPattern5();

            state._fsp--;

             current =iv_ruleMonsterPattern5; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleMonsterPattern57832); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleMonsterPattern5"


    // $ANTLR start "ruleMonsterPattern5"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3213:1: ruleMonsterPattern5 returns [EObject current=null] : (this_MonsterInst5_0= ruleMonsterInst5 ( ( (lv_value1_1_0= RULE_STRING ) ) | ( (lv_value2_2_0= RULE_INT ) ) ) (this_FREE_FORM_COMMENT_3= RULE_FREE_FORM_COMMENT )* ) ;
    public final EObject ruleMonsterPattern5() throws RecognitionException {
        EObject current = null;

        Token lv_value1_1_0=null;
        Token lv_value2_2_0=null;
        Token this_FREE_FORM_COMMENT_3=null;
        EObject this_MonsterInst5_0 = null;


         enterRule(); 
            
        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3216:28: ( (this_MonsterInst5_0= ruleMonsterInst5 ( ( (lv_value1_1_0= RULE_STRING ) ) | ( (lv_value2_2_0= RULE_INT ) ) ) (this_FREE_FORM_COMMENT_3= RULE_FREE_FORM_COMMENT )* ) )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3217:1: (this_MonsterInst5_0= ruleMonsterInst5 ( ( (lv_value1_1_0= RULE_STRING ) ) | ( (lv_value2_2_0= RULE_INT ) ) ) (this_FREE_FORM_COMMENT_3= RULE_FREE_FORM_COMMENT )* )
            {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3217:1: (this_MonsterInst5_0= ruleMonsterInst5 ( ( (lv_value1_1_0= RULE_STRING ) ) | ( (lv_value2_2_0= RULE_INT ) ) ) (this_FREE_FORM_COMMENT_3= RULE_FREE_FORM_COMMENT )* )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3218:5: this_MonsterInst5_0= ruleMonsterInst5 ( ( (lv_value1_1_0= RULE_STRING ) ) | ( (lv_value2_2_0= RULE_INT ) ) ) (this_FREE_FORM_COMMENT_3= RULE_FREE_FORM_COMMENT )*
            {
             
                    newCompositeNode(grammarAccess.getMonsterPattern5Access().getMonsterInst5ParserRuleCall_0()); 
                
            pushFollow(FOLLOW_ruleMonsterInst5_in_ruleMonsterPattern57879);
            this_MonsterInst5_0=ruleMonsterInst5();

            state._fsp--;

             
                    current = this_MonsterInst5_0; 
                    afterParserOrEnumRuleCall();
                
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3226:1: ( ( (lv_value1_1_0= RULE_STRING ) ) | ( (lv_value2_2_0= RULE_INT ) ) )
            int alt45=2;
            int LA45_0 = input.LA(1);

            if ( (LA45_0==RULE_STRING) ) {
                alt45=1;
            }
            else if ( (LA45_0==RULE_INT) ) {
                alt45=2;
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("", 45, 0, input);

                throw nvae;
            }
            switch (alt45) {
                case 1 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3226:2: ( (lv_value1_1_0= RULE_STRING ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3226:2: ( (lv_value1_1_0= RULE_STRING ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3227:1: (lv_value1_1_0= RULE_STRING )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3227:1: (lv_value1_1_0= RULE_STRING )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3228:3: lv_value1_1_0= RULE_STRING
                    {
                    lv_value1_1_0=(Token)match(input,RULE_STRING,FOLLOW_RULE_STRING_in_ruleMonsterPattern57896); 

                    			newLeafNode(lv_value1_1_0, grammarAccess.getMonsterPattern5Access().getValue1STRINGTerminalRuleCall_1_0_0()); 
                    		

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getMonsterPattern5Rule());
                    	        }
                           		setWithLastConsumed(
                           			current, 
                           			"value1",
                            		lv_value1_1_0, 
                            		"STRING");
                    	    

                    }


                    }


                    }
                    break;
                case 2 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3245:6: ( (lv_value2_2_0= RULE_INT ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3245:6: ( (lv_value2_2_0= RULE_INT ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3246:1: (lv_value2_2_0= RULE_INT )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3246:1: (lv_value2_2_0= RULE_INT )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3247:3: lv_value2_2_0= RULE_INT
                    {
                    lv_value2_2_0=(Token)match(input,RULE_INT,FOLLOW_RULE_INT_in_ruleMonsterPattern57924); 

                    			newLeafNode(lv_value2_2_0, grammarAccess.getMonsterPattern5Access().getValue2INTTerminalRuleCall_1_1_0()); 
                    		

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getMonsterPattern5Rule());
                    	        }
                           		setWithLastConsumed(
                           			current, 
                           			"value2",
                            		lv_value2_2_0, 
                            		"INT");
                    	    

                    }


                    }


                    }
                    break;

            }

            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3263:3: (this_FREE_FORM_COMMENT_3= RULE_FREE_FORM_COMMENT )*
            loop46:
            do {
                int alt46=2;
                int LA46_0 = input.LA(1);

                if ( (LA46_0==RULE_FREE_FORM_COMMENT) ) {
                    alt46=1;
                }


                switch (alt46) {
            	case 1 :
            	    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3263:4: this_FREE_FORM_COMMENT_3= RULE_FREE_FORM_COMMENT
            	    {
            	    this_FREE_FORM_COMMENT_3=(Token)match(input,RULE_FREE_FORM_COMMENT,FOLLOW_RULE_FREE_FORM_COMMENT_in_ruleMonsterPattern57942); 
            	     
            	        newLeafNode(this_FREE_FORM_COMMENT_3, grammarAccess.getMonsterPattern5Access().getFREE_FORM_COMMENTTerminalRuleCall_2()); 
            	        

            	    }
            	    break;

            	default :
            	    break loop46;
                }
            } while (true);


            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleMonsterPattern5"


    // $ANTLR start "entryRuleMonsterPattern6"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3275:1: entryRuleMonsterPattern6 returns [EObject current=null] : iv_ruleMonsterPattern6= ruleMonsterPattern6 EOF ;
    public final EObject entryRuleMonsterPattern6() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleMonsterPattern6 = null;


        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3276:2: (iv_ruleMonsterPattern6= ruleMonsterPattern6 EOF )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3277:2: iv_ruleMonsterPattern6= ruleMonsterPattern6 EOF
            {
             newCompositeNode(grammarAccess.getMonsterPattern6Rule()); 
            pushFollow(FOLLOW_ruleMonsterPattern6_in_entryRuleMonsterPattern67979);
            iv_ruleMonsterPattern6=ruleMonsterPattern6();

            state._fsp--;

             current =iv_ruleMonsterPattern6; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleMonsterPattern67989); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleMonsterPattern6"


    // $ANTLR start "ruleMonsterPattern6"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3284:1: ruleMonsterPattern6 returns [EObject current=null] : (this_MonsterInst6_0= ruleMonsterInst6 ( (lv_value_1_0= RULE_INT ) )? (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )* ) ;
    public final EObject ruleMonsterPattern6() throws RecognitionException {
        EObject current = null;

        Token lv_value_1_0=null;
        Token this_FREE_FORM_COMMENT_2=null;
        EObject this_MonsterInst6_0 = null;


         enterRule(); 
            
        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3287:28: ( (this_MonsterInst6_0= ruleMonsterInst6 ( (lv_value_1_0= RULE_INT ) )? (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )* ) )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3288:1: (this_MonsterInst6_0= ruleMonsterInst6 ( (lv_value_1_0= RULE_INT ) )? (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )* )
            {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3288:1: (this_MonsterInst6_0= ruleMonsterInst6 ( (lv_value_1_0= RULE_INT ) )? (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )* )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3289:5: this_MonsterInst6_0= ruleMonsterInst6 ( (lv_value_1_0= RULE_INT ) )? (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )*
            {
             
                    newCompositeNode(grammarAccess.getMonsterPattern6Access().getMonsterInst6ParserRuleCall_0()); 
                
            pushFollow(FOLLOW_ruleMonsterInst6_in_ruleMonsterPattern68036);
            this_MonsterInst6_0=ruleMonsterInst6();

            state._fsp--;

             
                    current = this_MonsterInst6_0; 
                    afterParserOrEnumRuleCall();
                
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3297:1: ( (lv_value_1_0= RULE_INT ) )?
            int alt47=2;
            int LA47_0 = input.LA(1);

            if ( (LA47_0==RULE_INT) ) {
                alt47=1;
            }
            switch (alt47) {
                case 1 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3298:1: (lv_value_1_0= RULE_INT )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3298:1: (lv_value_1_0= RULE_INT )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3299:3: lv_value_1_0= RULE_INT
                    {
                    lv_value_1_0=(Token)match(input,RULE_INT,FOLLOW_RULE_INT_in_ruleMonsterPattern68052); 

                    			newLeafNode(lv_value_1_0, grammarAccess.getMonsterPattern6Access().getValueINTTerminalRuleCall_1_0()); 
                    		

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getMonsterPattern6Rule());
                    	        }
                           		setWithLastConsumed(
                           			current, 
                           			"value",
                            		lv_value_1_0, 
                            		"INT");
                    	    

                    }


                    }
                    break;

            }

            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3315:3: (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )*
            loop48:
            do {
                int alt48=2;
                int LA48_0 = input.LA(1);

                if ( (LA48_0==RULE_FREE_FORM_COMMENT) ) {
                    alt48=1;
                }


                switch (alt48) {
            	case 1 :
            	    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3315:4: this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT
            	    {
            	    this_FREE_FORM_COMMENT_2=(Token)match(input,RULE_FREE_FORM_COMMENT,FOLLOW_RULE_FREE_FORM_COMMENT_in_ruleMonsterPattern68070); 
            	     
            	        newLeafNode(this_FREE_FORM_COMMENT_2, grammarAccess.getMonsterPattern6Access().getFREE_FORM_COMMENTTerminalRuleCall_2()); 
            	        

            	    }
            	    break;

            	default :
            	    break loop48;
                }
            } while (true);


            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleMonsterPattern6"


    // $ANTLR start "entryRuleMonsterInst1"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3327:1: entryRuleMonsterInst1 returns [EObject current=null] : iv_ruleMonsterInst1= ruleMonsterInst1 EOF ;
    public final EObject entryRuleMonsterInst1() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleMonsterInst1 = null;


        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3328:2: (iv_ruleMonsterInst1= ruleMonsterInst1 EOF )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3329:2: iv_ruleMonsterInst1= ruleMonsterInst1 EOF
            {
             newCompositeNode(grammarAccess.getMonsterInst1Rule()); 
            pushFollow(FOLLOW_ruleMonsterInst1_in_entryRuleMonsterInst18107);
            iv_ruleMonsterInst1=ruleMonsterInst1();

            state._fsp--;

             current =iv_ruleMonsterInst1; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleMonsterInst18117); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleMonsterInst1"


    // $ANTLR start "ruleMonsterInst1"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3336:1: ruleMonsterInst1 returns [EObject current=null] : ( ( (lv_name_0_0= '#name' ) ) | ( (lv_spr1_1_0= '#spr1' ) ) | ( (lv_spr2_2_0= '#spr2' ) ) | ( (lv_descr_3_0= '#descr' ) ) ) ;
    public final EObject ruleMonsterInst1() throws RecognitionException {
        EObject current = null;

        Token lv_name_0_0=null;
        Token lv_spr1_1_0=null;
        Token lv_spr2_2_0=null;
        Token lv_descr_3_0=null;

         enterRule(); 
            
        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3339:28: ( ( ( (lv_name_0_0= '#name' ) ) | ( (lv_spr1_1_0= '#spr1' ) ) | ( (lv_spr2_2_0= '#spr2' ) ) | ( (lv_descr_3_0= '#descr' ) ) ) )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3340:1: ( ( (lv_name_0_0= '#name' ) ) | ( (lv_spr1_1_0= '#spr1' ) ) | ( (lv_spr2_2_0= '#spr2' ) ) | ( (lv_descr_3_0= '#descr' ) ) )
            {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3340:1: ( ( (lv_name_0_0= '#name' ) ) | ( (lv_spr1_1_0= '#spr1' ) ) | ( (lv_spr2_2_0= '#spr2' ) ) | ( (lv_descr_3_0= '#descr' ) ) )
            int alt49=4;
            switch ( input.LA(1) ) {
            case 36:
                {
                alt49=1;
                }
                break;
            case 87:
                {
                alt49=2;
                }
                break;
            case 88:
                {
                alt49=3;
                }
                break;
            case 89:
                {
                alt49=4;
                }
                break;
            default:
                NoViableAltException nvae =
                    new NoViableAltException("", 49, 0, input);

                throw nvae;
            }

            switch (alt49) {
                case 1 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3340:2: ( (lv_name_0_0= '#name' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3340:2: ( (lv_name_0_0= '#name' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3341:1: (lv_name_0_0= '#name' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3341:1: (lv_name_0_0= '#name' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3342:3: lv_name_0_0= '#name'
                    {
                    lv_name_0_0=(Token)match(input,36,FOLLOW_36_in_ruleMonsterInst18160); 

                            newLeafNode(lv_name_0_0, grammarAccess.getMonsterInst1Access().getNameNameKeyword_0_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getMonsterInst1Rule());
                    	        }
                           		setWithLastConsumed(current, "name", true, "#name");
                    	    

                    }


                    }


                    }
                    break;
                case 2 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3356:6: ( (lv_spr1_1_0= '#spr1' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3356:6: ( (lv_spr1_1_0= '#spr1' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3357:1: (lv_spr1_1_0= '#spr1' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3357:1: (lv_spr1_1_0= '#spr1' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3358:3: lv_spr1_1_0= '#spr1'
                    {
                    lv_spr1_1_0=(Token)match(input,87,FOLLOW_87_in_ruleMonsterInst18197); 

                            newLeafNode(lv_spr1_1_0, grammarAccess.getMonsterInst1Access().getSpr1Spr1Keyword_1_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getMonsterInst1Rule());
                    	        }
                           		setWithLastConsumed(current, "spr1", true, "#spr1");
                    	    

                    }


                    }


                    }
                    break;
                case 3 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3372:6: ( (lv_spr2_2_0= '#spr2' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3372:6: ( (lv_spr2_2_0= '#spr2' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3373:1: (lv_spr2_2_0= '#spr2' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3373:1: (lv_spr2_2_0= '#spr2' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3374:3: lv_spr2_2_0= '#spr2'
                    {
                    lv_spr2_2_0=(Token)match(input,88,FOLLOW_88_in_ruleMonsterInst18234); 

                            newLeafNode(lv_spr2_2_0, grammarAccess.getMonsterInst1Access().getSpr2Spr2Keyword_2_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getMonsterInst1Rule());
                    	        }
                           		setWithLastConsumed(current, "spr2", true, "#spr2");
                    	    

                    }


                    }


                    }
                    break;
                case 4 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3388:6: ( (lv_descr_3_0= '#descr' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3388:6: ( (lv_descr_3_0= '#descr' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3389:1: (lv_descr_3_0= '#descr' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3389:1: (lv_descr_3_0= '#descr' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3390:3: lv_descr_3_0= '#descr'
                    {
                    lv_descr_3_0=(Token)match(input,89,FOLLOW_89_in_ruleMonsterInst18271); 

                            newLeafNode(lv_descr_3_0, grammarAccess.getMonsterInst1Access().getDescrDescrKeyword_3_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getMonsterInst1Rule());
                    	        }
                           		setWithLastConsumed(current, "descr", true, "#descr");
                    	    

                    }


                    }


                    }
                    break;

            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleMonsterInst1"


    // $ANTLR start "entryRuleMonsterInst2"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3411:1: entryRuleMonsterInst2 returns [EObject current=null] : iv_ruleMonsterInst2= ruleMonsterInst2 EOF ;
    public final EObject entryRuleMonsterInst2() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleMonsterInst2 = null;


        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3412:2: (iv_ruleMonsterInst2= ruleMonsterInst2 EOF )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3413:2: iv_ruleMonsterInst2= ruleMonsterInst2 EOF
            {
             newCompositeNode(grammarAccess.getMonsterInst2Rule()); 
            pushFollow(FOLLOW_ruleMonsterInst2_in_entryRuleMonsterInst28320);
            iv_ruleMonsterInst2=ruleMonsterInst2();

            state._fsp--;

             current =iv_ruleMonsterInst2; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleMonsterInst28330); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleMonsterInst2"


    // $ANTLR start "ruleMonsterInst2"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3420:1: ruleMonsterInst2 returns [EObject current=null] : ( ( (lv_speciallook_0_0= '#speciallook' ) ) | ( (lv_ap_1_0= '#ap' ) ) | ( (lv_mapmove_2_0= '#mapmove' ) ) | ( (lv_hp_3_0= '#hp' ) ) | ( (lv_prot_4_0= '#prot' ) ) | ( (lv_size_5_0= '#size' ) ) | ( (lv_ressize_6_0= '#ressize' ) ) | ( (lv_str_7_0= '#str' ) ) | ( (lv_enc_8_0= '#enc' ) ) | ( (lv_att_9_0= '#att' ) ) | ( (lv_def_10_0= '#def' ) ) | ( (lv_prec_11_0= '#prec' ) ) | ( (lv_mr_12_0= '#mr' ) ) | ( (lv_mor_13_0= '#mor' ) ) | ( (lv_gcost_14_0= '#gcost' ) ) | ( (lv_rcost_15_0= '#rcost' ) ) | ( (lv_pathcost_16_0= '#pathcost' ) ) | ( (lv_startdom_17_0= '#startdom' ) ) | ( (lv_eyes_18_0= '#eyes' ) ) | ( (lv_copystats_19_0= '#copystats' ) ) | ( (lv_copyspr_20_0= '#copyspr' ) ) | ( (lv_restrictedgod_21_0= '#restrictedgod' ) ) | ( (lv_shatteredsoul_22_0= '#shatteredsoul' ) ) | ( (lv_coldres_23_0= '#coldres' ) ) | ( (lv_coldres_24_0= '#coldresist' ) ) | ( (lv_fireres_25_0= '#fireres' ) ) | ( (lv_fireres_26_0= '#fireresist' ) ) | ( (lv_poisonres_27_0= '#poisonres' ) ) | ( (lv_shockres_28_0= '#shockres' ) ) | ( (lv_darkvision_29_0= '#darkvision' ) ) | ( (lv_seduce_30_0= '#seduce' ) ) | ( (lv_succubus_31_0= '#succubus' ) ) | ( (lv_beckon_32_0= '#beckon' ) ) | ( (lv_startage_33_0= '#startage' ) ) | ( (lv_maxage_34_0= '#maxage' ) ) | ( (lv_older_35_0= '#older' ) ) | ( (lv_healer_36_0= '#healer' ) ) | ( (lv_startaff_37_0= '#startaff' ) ) | ( (lv_supplybonus_38_0= '#supplybonus' ) ) | ( (lv_uwdamage_39_0= '#uwdamage' ) ) | ( (lv_homesick_40_0= '#homesick' ) ) | ( (lv_coldpower_41_0= '#coldpower' ) ) | ( (lv_firepower_42_0= '#firepower' ) ) | ( (lv_stormpower_43_0= '#stormpower' ) ) | ( (lv_darkpower_44_0= '#darkpower' ) ) | ( (lv_springpower_45_0= '#springpower' ) ) | ( (lv_summerpower_46_0= '#summerpower' ) ) | ( (lv_fallpower_47_0= '#fallpower' ) ) | ( (lv_winterpower_48_0= '#winterpower' ) ) | ( (lv_ambidextrous_49_0= '#ambidextrous' ) ) | ( (lv_banefireshield_50_0= '#banefireshield' ) ) | ( (lv_berserk_51_0= '#berserk' ) ) | ( (lv_standard_52_0= '#standard' ) ) | ( (lv_animalawe_53_0= '#animalawe' ) ) | ( (lv_awe_54_0= '#awe' ) ) | ( (lv_fear_55_0= '#fear' ) ) | ( (lv_regeneration_56_0= '#regeneration' ) ) | ( (lv_reinvigoration_57_0= '#reinvigoration' ) ) | ( (lv_fireshield_58_0= '#fireshield' ) ) | ( (lv_iceprot_59_0= '#iceprot' ) ) | ( (lv_poisoncloud_60_0= '#poisoncloud' ) ) | ( (lv_diseasecloud_61_0= '#diseasecloud' ) ) | ( (lv_bloodvengeance_62_0= '#bloodvengeance' ) ) | ( (lv_castledef_63_0= '#castledef' ) ) | ( (lv_siegebonus_64_0= '#siegebonus' ) ) | ( (lv_patrolbonus_65_0= '#patrolbonus' ) ) | ( (lv_pillagebonus_66_0= '#pillagebonus' ) ) | ( (lv_researchbonus_67_0= '#researchbonus' ) ) | ( (lv_forgebonus_68_0= '#forgebonus' ) ) | ( (lv_douse_69_0= '#douse' ) ) | ( (lv_nobadevents_70_0= '#nobadevents' ) ) | ( (lv_incunrest_71_0= '#incunrest' ) ) | ( (lv_spreaddom_72_0= '#spreaddom' ) ) | ( (lv_leper_73_0= '#leper' ) ) | ( (lv_popkill_74_0= '#popkill' ) ) | ( (lv_heretic_75_0= '#heretic' ) ) | ( (lv_itemslots_76_0= '#itemslots' ) ) | ( (lv_nametype_77_0= '#nametype' ) ) ) ;
    public final EObject ruleMonsterInst2() throws RecognitionException {
        EObject current = null;

        Token lv_speciallook_0_0=null;
        Token lv_ap_1_0=null;
        Token lv_mapmove_2_0=null;
        Token lv_hp_3_0=null;
        Token lv_prot_4_0=null;
        Token lv_size_5_0=null;
        Token lv_ressize_6_0=null;
        Token lv_str_7_0=null;
        Token lv_enc_8_0=null;
        Token lv_att_9_0=null;
        Token lv_def_10_0=null;
        Token lv_prec_11_0=null;
        Token lv_mr_12_0=null;
        Token lv_mor_13_0=null;
        Token lv_gcost_14_0=null;
        Token lv_rcost_15_0=null;
        Token lv_pathcost_16_0=null;
        Token lv_startdom_17_0=null;
        Token lv_eyes_18_0=null;
        Token lv_copystats_19_0=null;
        Token lv_copyspr_20_0=null;
        Token lv_restrictedgod_21_0=null;
        Token lv_shatteredsoul_22_0=null;
        Token lv_coldres_23_0=null;
        Token lv_coldres_24_0=null;
        Token lv_fireres_25_0=null;
        Token lv_fireres_26_0=null;
        Token lv_poisonres_27_0=null;
        Token lv_shockres_28_0=null;
        Token lv_darkvision_29_0=null;
        Token lv_seduce_30_0=null;
        Token lv_succubus_31_0=null;
        Token lv_beckon_32_0=null;
        Token lv_startage_33_0=null;
        Token lv_maxage_34_0=null;
        Token lv_older_35_0=null;
        Token lv_healer_36_0=null;
        Token lv_startaff_37_0=null;
        Token lv_supplybonus_38_0=null;
        Token lv_uwdamage_39_0=null;
        Token lv_homesick_40_0=null;
        Token lv_coldpower_41_0=null;
        Token lv_firepower_42_0=null;
        Token lv_stormpower_43_0=null;
        Token lv_darkpower_44_0=null;
        Token lv_springpower_45_0=null;
        Token lv_summerpower_46_0=null;
        Token lv_fallpower_47_0=null;
        Token lv_winterpower_48_0=null;
        Token lv_ambidextrous_49_0=null;
        Token lv_banefireshield_50_0=null;
        Token lv_berserk_51_0=null;
        Token lv_standard_52_0=null;
        Token lv_animalawe_53_0=null;
        Token lv_awe_54_0=null;
        Token lv_fear_55_0=null;
        Token lv_regeneration_56_0=null;
        Token lv_reinvigoration_57_0=null;
        Token lv_fireshield_58_0=null;
        Token lv_iceprot_59_0=null;
        Token lv_poisoncloud_60_0=null;
        Token lv_diseasecloud_61_0=null;
        Token lv_bloodvengeance_62_0=null;
        Token lv_castledef_63_0=null;
        Token lv_siegebonus_64_0=null;
        Token lv_patrolbonus_65_0=null;
        Token lv_pillagebonus_66_0=null;
        Token lv_researchbonus_67_0=null;
        Token lv_forgebonus_68_0=null;
        Token lv_douse_69_0=null;
        Token lv_nobadevents_70_0=null;
        Token lv_incunrest_71_0=null;
        Token lv_spreaddom_72_0=null;
        Token lv_leper_73_0=null;
        Token lv_popkill_74_0=null;
        Token lv_heretic_75_0=null;
        Token lv_itemslots_76_0=null;
        Token lv_nametype_77_0=null;

         enterRule(); 
            
        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3423:28: ( ( ( (lv_speciallook_0_0= '#speciallook' ) ) | ( (lv_ap_1_0= '#ap' ) ) | ( (lv_mapmove_2_0= '#mapmove' ) ) | ( (lv_hp_3_0= '#hp' ) ) | ( (lv_prot_4_0= '#prot' ) ) | ( (lv_size_5_0= '#size' ) ) | ( (lv_ressize_6_0= '#ressize' ) ) | ( (lv_str_7_0= '#str' ) ) | ( (lv_enc_8_0= '#enc' ) ) | ( (lv_att_9_0= '#att' ) ) | ( (lv_def_10_0= '#def' ) ) | ( (lv_prec_11_0= '#prec' ) ) | ( (lv_mr_12_0= '#mr' ) ) | ( (lv_mor_13_0= '#mor' ) ) | ( (lv_gcost_14_0= '#gcost' ) ) | ( (lv_rcost_15_0= '#rcost' ) ) | ( (lv_pathcost_16_0= '#pathcost' ) ) | ( (lv_startdom_17_0= '#startdom' ) ) | ( (lv_eyes_18_0= '#eyes' ) ) | ( (lv_copystats_19_0= '#copystats' ) ) | ( (lv_copyspr_20_0= '#copyspr' ) ) | ( (lv_restrictedgod_21_0= '#restrictedgod' ) ) | ( (lv_shatteredsoul_22_0= '#shatteredsoul' ) ) | ( (lv_coldres_23_0= '#coldres' ) ) | ( (lv_coldres_24_0= '#coldresist' ) ) | ( (lv_fireres_25_0= '#fireres' ) ) | ( (lv_fireres_26_0= '#fireresist' ) ) | ( (lv_poisonres_27_0= '#poisonres' ) ) | ( (lv_shockres_28_0= '#shockres' ) ) | ( (lv_darkvision_29_0= '#darkvision' ) ) | ( (lv_seduce_30_0= '#seduce' ) ) | ( (lv_succubus_31_0= '#succubus' ) ) | ( (lv_beckon_32_0= '#beckon' ) ) | ( (lv_startage_33_0= '#startage' ) ) | ( (lv_maxage_34_0= '#maxage' ) ) | ( (lv_older_35_0= '#older' ) ) | ( (lv_healer_36_0= '#healer' ) ) | ( (lv_startaff_37_0= '#startaff' ) ) | ( (lv_supplybonus_38_0= '#supplybonus' ) ) | ( (lv_uwdamage_39_0= '#uwdamage' ) ) | ( (lv_homesick_40_0= '#homesick' ) ) | ( (lv_coldpower_41_0= '#coldpower' ) ) | ( (lv_firepower_42_0= '#firepower' ) ) | ( (lv_stormpower_43_0= '#stormpower' ) ) | ( (lv_darkpower_44_0= '#darkpower' ) ) | ( (lv_springpower_45_0= '#springpower' ) ) | ( (lv_summerpower_46_0= '#summerpower' ) ) | ( (lv_fallpower_47_0= '#fallpower' ) ) | ( (lv_winterpower_48_0= '#winterpower' ) ) | ( (lv_ambidextrous_49_0= '#ambidextrous' ) ) | ( (lv_banefireshield_50_0= '#banefireshield' ) ) | ( (lv_berserk_51_0= '#berserk' ) ) | ( (lv_standard_52_0= '#standard' ) ) | ( (lv_animalawe_53_0= '#animalawe' ) ) | ( (lv_awe_54_0= '#awe' ) ) | ( (lv_fear_55_0= '#fear' ) ) | ( (lv_regeneration_56_0= '#regeneration' ) ) | ( (lv_reinvigoration_57_0= '#reinvigoration' ) ) | ( (lv_fireshield_58_0= '#fireshield' ) ) | ( (lv_iceprot_59_0= '#iceprot' ) ) | ( (lv_poisoncloud_60_0= '#poisoncloud' ) ) | ( (lv_diseasecloud_61_0= '#diseasecloud' ) ) | ( (lv_bloodvengeance_62_0= '#bloodvengeance' ) ) | ( (lv_castledef_63_0= '#castledef' ) ) | ( (lv_siegebonus_64_0= '#siegebonus' ) ) | ( (lv_patrolbonus_65_0= '#patrolbonus' ) ) | ( (lv_pillagebonus_66_0= '#pillagebonus' ) ) | ( (lv_researchbonus_67_0= '#researchbonus' ) ) | ( (lv_forgebonus_68_0= '#forgebonus' ) ) | ( (lv_douse_69_0= '#douse' ) ) | ( (lv_nobadevents_70_0= '#nobadevents' ) ) | ( (lv_incunrest_71_0= '#incunrest' ) ) | ( (lv_spreaddom_72_0= '#spreaddom' ) ) | ( (lv_leper_73_0= '#leper' ) ) | ( (lv_popkill_74_0= '#popkill' ) ) | ( (lv_heretic_75_0= '#heretic' ) ) | ( (lv_itemslots_76_0= '#itemslots' ) ) | ( (lv_nametype_77_0= '#nametype' ) ) ) )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3424:1: ( ( (lv_speciallook_0_0= '#speciallook' ) ) | ( (lv_ap_1_0= '#ap' ) ) | ( (lv_mapmove_2_0= '#mapmove' ) ) | ( (lv_hp_3_0= '#hp' ) ) | ( (lv_prot_4_0= '#prot' ) ) | ( (lv_size_5_0= '#size' ) ) | ( (lv_ressize_6_0= '#ressize' ) ) | ( (lv_str_7_0= '#str' ) ) | ( (lv_enc_8_0= '#enc' ) ) | ( (lv_att_9_0= '#att' ) ) | ( (lv_def_10_0= '#def' ) ) | ( (lv_prec_11_0= '#prec' ) ) | ( (lv_mr_12_0= '#mr' ) ) | ( (lv_mor_13_0= '#mor' ) ) | ( (lv_gcost_14_0= '#gcost' ) ) | ( (lv_rcost_15_0= '#rcost' ) ) | ( (lv_pathcost_16_0= '#pathcost' ) ) | ( (lv_startdom_17_0= '#startdom' ) ) | ( (lv_eyes_18_0= '#eyes' ) ) | ( (lv_copystats_19_0= '#copystats' ) ) | ( (lv_copyspr_20_0= '#copyspr' ) ) | ( (lv_restrictedgod_21_0= '#restrictedgod' ) ) | ( (lv_shatteredsoul_22_0= '#shatteredsoul' ) ) | ( (lv_coldres_23_0= '#coldres' ) ) | ( (lv_coldres_24_0= '#coldresist' ) ) | ( (lv_fireres_25_0= '#fireres' ) ) | ( (lv_fireres_26_0= '#fireresist' ) ) | ( (lv_poisonres_27_0= '#poisonres' ) ) | ( (lv_shockres_28_0= '#shockres' ) ) | ( (lv_darkvision_29_0= '#darkvision' ) ) | ( (lv_seduce_30_0= '#seduce' ) ) | ( (lv_succubus_31_0= '#succubus' ) ) | ( (lv_beckon_32_0= '#beckon' ) ) | ( (lv_startage_33_0= '#startage' ) ) | ( (lv_maxage_34_0= '#maxage' ) ) | ( (lv_older_35_0= '#older' ) ) | ( (lv_healer_36_0= '#healer' ) ) | ( (lv_startaff_37_0= '#startaff' ) ) | ( (lv_supplybonus_38_0= '#supplybonus' ) ) | ( (lv_uwdamage_39_0= '#uwdamage' ) ) | ( (lv_homesick_40_0= '#homesick' ) ) | ( (lv_coldpower_41_0= '#coldpower' ) ) | ( (lv_firepower_42_0= '#firepower' ) ) | ( (lv_stormpower_43_0= '#stormpower' ) ) | ( (lv_darkpower_44_0= '#darkpower' ) ) | ( (lv_springpower_45_0= '#springpower' ) ) | ( (lv_summerpower_46_0= '#summerpower' ) ) | ( (lv_fallpower_47_0= '#fallpower' ) ) | ( (lv_winterpower_48_0= '#winterpower' ) ) | ( (lv_ambidextrous_49_0= '#ambidextrous' ) ) | ( (lv_banefireshield_50_0= '#banefireshield' ) ) | ( (lv_berserk_51_0= '#berserk' ) ) | ( (lv_standard_52_0= '#standard' ) ) | ( (lv_animalawe_53_0= '#animalawe' ) ) | ( (lv_awe_54_0= '#awe' ) ) | ( (lv_fear_55_0= '#fear' ) ) | ( (lv_regeneration_56_0= '#regeneration' ) ) | ( (lv_reinvigoration_57_0= '#reinvigoration' ) ) | ( (lv_fireshield_58_0= '#fireshield' ) ) | ( (lv_iceprot_59_0= '#iceprot' ) ) | ( (lv_poisoncloud_60_0= '#poisoncloud' ) ) | ( (lv_diseasecloud_61_0= '#diseasecloud' ) ) | ( (lv_bloodvengeance_62_0= '#bloodvengeance' ) ) | ( (lv_castledef_63_0= '#castledef' ) ) | ( (lv_siegebonus_64_0= '#siegebonus' ) ) | ( (lv_patrolbonus_65_0= '#patrolbonus' ) ) | ( (lv_pillagebonus_66_0= '#pillagebonus' ) ) | ( (lv_researchbonus_67_0= '#researchbonus' ) ) | ( (lv_forgebonus_68_0= '#forgebonus' ) ) | ( (lv_douse_69_0= '#douse' ) ) | ( (lv_nobadevents_70_0= '#nobadevents' ) ) | ( (lv_incunrest_71_0= '#incunrest' ) ) | ( (lv_spreaddom_72_0= '#spreaddom' ) ) | ( (lv_leper_73_0= '#leper' ) ) | ( (lv_popkill_74_0= '#popkill' ) ) | ( (lv_heretic_75_0= '#heretic' ) ) | ( (lv_itemslots_76_0= '#itemslots' ) ) | ( (lv_nametype_77_0= '#nametype' ) ) )
            {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3424:1: ( ( (lv_speciallook_0_0= '#speciallook' ) ) | ( (lv_ap_1_0= '#ap' ) ) | ( (lv_mapmove_2_0= '#mapmove' ) ) | ( (lv_hp_3_0= '#hp' ) ) | ( (lv_prot_4_0= '#prot' ) ) | ( (lv_size_5_0= '#size' ) ) | ( (lv_ressize_6_0= '#ressize' ) ) | ( (lv_str_7_0= '#str' ) ) | ( (lv_enc_8_0= '#enc' ) ) | ( (lv_att_9_0= '#att' ) ) | ( (lv_def_10_0= '#def' ) ) | ( (lv_prec_11_0= '#prec' ) ) | ( (lv_mr_12_0= '#mr' ) ) | ( (lv_mor_13_0= '#mor' ) ) | ( (lv_gcost_14_0= '#gcost' ) ) | ( (lv_rcost_15_0= '#rcost' ) ) | ( (lv_pathcost_16_0= '#pathcost' ) ) | ( (lv_startdom_17_0= '#startdom' ) ) | ( (lv_eyes_18_0= '#eyes' ) ) | ( (lv_copystats_19_0= '#copystats' ) ) | ( (lv_copyspr_20_0= '#copyspr' ) ) | ( (lv_restrictedgod_21_0= '#restrictedgod' ) ) | ( (lv_shatteredsoul_22_0= '#shatteredsoul' ) ) | ( (lv_coldres_23_0= '#coldres' ) ) | ( (lv_coldres_24_0= '#coldresist' ) ) | ( (lv_fireres_25_0= '#fireres' ) ) | ( (lv_fireres_26_0= '#fireresist' ) ) | ( (lv_poisonres_27_0= '#poisonres' ) ) | ( (lv_shockres_28_0= '#shockres' ) ) | ( (lv_darkvision_29_0= '#darkvision' ) ) | ( (lv_seduce_30_0= '#seduce' ) ) | ( (lv_succubus_31_0= '#succubus' ) ) | ( (lv_beckon_32_0= '#beckon' ) ) | ( (lv_startage_33_0= '#startage' ) ) | ( (lv_maxage_34_0= '#maxage' ) ) | ( (lv_older_35_0= '#older' ) ) | ( (lv_healer_36_0= '#healer' ) ) | ( (lv_startaff_37_0= '#startaff' ) ) | ( (lv_supplybonus_38_0= '#supplybonus' ) ) | ( (lv_uwdamage_39_0= '#uwdamage' ) ) | ( (lv_homesick_40_0= '#homesick' ) ) | ( (lv_coldpower_41_0= '#coldpower' ) ) | ( (lv_firepower_42_0= '#firepower' ) ) | ( (lv_stormpower_43_0= '#stormpower' ) ) | ( (lv_darkpower_44_0= '#darkpower' ) ) | ( (lv_springpower_45_0= '#springpower' ) ) | ( (lv_summerpower_46_0= '#summerpower' ) ) | ( (lv_fallpower_47_0= '#fallpower' ) ) | ( (lv_winterpower_48_0= '#winterpower' ) ) | ( (lv_ambidextrous_49_0= '#ambidextrous' ) ) | ( (lv_banefireshield_50_0= '#banefireshield' ) ) | ( (lv_berserk_51_0= '#berserk' ) ) | ( (lv_standard_52_0= '#standard' ) ) | ( (lv_animalawe_53_0= '#animalawe' ) ) | ( (lv_awe_54_0= '#awe' ) ) | ( (lv_fear_55_0= '#fear' ) ) | ( (lv_regeneration_56_0= '#regeneration' ) ) | ( (lv_reinvigoration_57_0= '#reinvigoration' ) ) | ( (lv_fireshield_58_0= '#fireshield' ) ) | ( (lv_iceprot_59_0= '#iceprot' ) ) | ( (lv_poisoncloud_60_0= '#poisoncloud' ) ) | ( (lv_diseasecloud_61_0= '#diseasecloud' ) ) | ( (lv_bloodvengeance_62_0= '#bloodvengeance' ) ) | ( (lv_castledef_63_0= '#castledef' ) ) | ( (lv_siegebonus_64_0= '#siegebonus' ) ) | ( (lv_patrolbonus_65_0= '#patrolbonus' ) ) | ( (lv_pillagebonus_66_0= '#pillagebonus' ) ) | ( (lv_researchbonus_67_0= '#researchbonus' ) ) | ( (lv_forgebonus_68_0= '#forgebonus' ) ) | ( (lv_douse_69_0= '#douse' ) ) | ( (lv_nobadevents_70_0= '#nobadevents' ) ) | ( (lv_incunrest_71_0= '#incunrest' ) ) | ( (lv_spreaddom_72_0= '#spreaddom' ) ) | ( (lv_leper_73_0= '#leper' ) ) | ( (lv_popkill_74_0= '#popkill' ) ) | ( (lv_heretic_75_0= '#heretic' ) ) | ( (lv_itemslots_76_0= '#itemslots' ) ) | ( (lv_nametype_77_0= '#nametype' ) ) )
            int alt50=78;
            switch ( input.LA(1) ) {
            case 90:
                {
                alt50=1;
                }
                break;
            case 91:
                {
                alt50=2;
                }
                break;
            case 92:
                {
                alt50=3;
                }
                break;
            case 93:
                {
                alt50=4;
                }
                break;
            case 38:
                {
                alt50=5;
                }
                break;
            case 94:
                {
                alt50=6;
                }
                break;
            case 95:
                {
                alt50=7;
                }
                break;
            case 96:
                {
                alt50=8;
                }
                break;
            case 40:
                {
                alt50=9;
                }
                break;
            case 46:
                {
                alt50=10;
                }
                break;
            case 39:
                {
                alt50=11;
                }
                break;
            case 97:
                {
                alt50=12;
                }
                break;
            case 98:
                {
                alt50=13;
                }
                break;
            case 99:
                {
                alt50=14;
                }
                break;
            case 100:
                {
                alt50=15;
                }
                break;
            case 41:
                {
                alt50=16;
                }
                break;
            case 101:
                {
                alt50=17;
                }
                break;
            case 102:
                {
                alt50=18;
                }
                break;
            case 103:
                {
                alt50=19;
                }
                break;
            case 104:
                {
                alt50=20;
                }
                break;
            case 105:
                {
                alt50=21;
                }
                break;
            case 106:
                {
                alt50=22;
                }
                break;
            case 107:
                {
                alt50=23;
                }
                break;
            case 108:
                {
                alt50=24;
                }
                break;
            case 109:
                {
                alt50=25;
                }
                break;
            case 110:
                {
                alt50=26;
                }
                break;
            case 111:
                {
                alt50=27;
                }
                break;
            case 112:
                {
                alt50=28;
                }
                break;
            case 113:
                {
                alt50=29;
                }
                break;
            case 114:
                {
                alt50=30;
                }
                break;
            case 115:
                {
                alt50=31;
                }
                break;
            case 116:
                {
                alt50=32;
                }
                break;
            case 117:
                {
                alt50=33;
                }
                break;
            case 118:
                {
                alt50=34;
                }
                break;
            case 119:
                {
                alt50=35;
                }
                break;
            case 120:
                {
                alt50=36;
                }
                break;
            case 121:
                {
                alt50=37;
                }
                break;
            case 122:
                {
                alt50=38;
                }
                break;
            case 123:
                {
                alt50=39;
                }
                break;
            case 124:
                {
                alt50=40;
                }
                break;
            case 125:
                {
                alt50=41;
                }
                break;
            case 126:
                {
                alt50=42;
                }
                break;
            case 127:
                {
                alt50=43;
                }
                break;
            case 128:
                {
                alt50=44;
                }
                break;
            case 129:
                {
                alt50=45;
                }
                break;
            case 130:
                {
                alt50=46;
                }
                break;
            case 131:
                {
                alt50=47;
                }
                break;
            case 132:
                {
                alt50=48;
                }
                break;
            case 133:
                {
                alt50=49;
                }
                break;
            case 134:
                {
                alt50=50;
                }
                break;
            case 135:
                {
                alt50=51;
                }
                break;
            case 136:
                {
                alt50=52;
                }
                break;
            case 137:
                {
                alt50=53;
                }
                break;
            case 138:
                {
                alt50=54;
                }
                break;
            case 139:
                {
                alt50=55;
                }
                break;
            case 140:
                {
                alt50=56;
                }
                break;
            case 141:
                {
                alt50=57;
                }
                break;
            case 142:
                {
                alt50=58;
                }
                break;
            case 143:
                {
                alt50=59;
                }
                break;
            case 144:
                {
                alt50=60;
                }
                break;
            case 145:
                {
                alt50=61;
                }
                break;
            case 146:
                {
                alt50=62;
                }
                break;
            case 147:
                {
                alt50=63;
                }
                break;
            case 148:
                {
                alt50=64;
                }
                break;
            case 149:
                {
                alt50=65;
                }
                break;
            case 150:
                {
                alt50=66;
                }
                break;
            case 151:
                {
                alt50=67;
                }
                break;
            case 152:
                {
                alt50=68;
                }
                break;
            case 153:
                {
                alt50=69;
                }
                break;
            case 154:
                {
                alt50=70;
                }
                break;
            case 155:
                {
                alt50=71;
                }
                break;
            case 156:
                {
                alt50=72;
                }
                break;
            case 157:
                {
                alt50=73;
                }
                break;
            case 158:
                {
                alt50=74;
                }
                break;
            case 159:
                {
                alt50=75;
                }
                break;
            case 160:
                {
                alt50=76;
                }
                break;
            case 161:
                {
                alt50=77;
                }
                break;
            case 162:
                {
                alt50=78;
                }
                break;
            default:
                NoViableAltException nvae =
                    new NoViableAltException("", 50, 0, input);

                throw nvae;
            }

            switch (alt50) {
                case 1 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3424:2: ( (lv_speciallook_0_0= '#speciallook' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3424:2: ( (lv_speciallook_0_0= '#speciallook' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3425:1: (lv_speciallook_0_0= '#speciallook' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3425:1: (lv_speciallook_0_0= '#speciallook' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3426:3: lv_speciallook_0_0= '#speciallook'
                    {
                    lv_speciallook_0_0=(Token)match(input,90,FOLLOW_90_in_ruleMonsterInst28373); 

                            newLeafNode(lv_speciallook_0_0, grammarAccess.getMonsterInst2Access().getSpeciallookSpeciallookKeyword_0_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getMonsterInst2Rule());
                    	        }
                           		setWithLastConsumed(current, "speciallook", true, "#speciallook");
                    	    

                    }


                    }


                    }
                    break;
                case 2 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3440:6: ( (lv_ap_1_0= '#ap' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3440:6: ( (lv_ap_1_0= '#ap' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3441:1: (lv_ap_1_0= '#ap' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3441:1: (lv_ap_1_0= '#ap' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3442:3: lv_ap_1_0= '#ap'
                    {
                    lv_ap_1_0=(Token)match(input,91,FOLLOW_91_in_ruleMonsterInst28410); 

                            newLeafNode(lv_ap_1_0, grammarAccess.getMonsterInst2Access().getApApKeyword_1_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getMonsterInst2Rule());
                    	        }
                           		setWithLastConsumed(current, "ap", true, "#ap");
                    	    

                    }


                    }


                    }
                    break;
                case 3 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3456:6: ( (lv_mapmove_2_0= '#mapmove' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3456:6: ( (lv_mapmove_2_0= '#mapmove' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3457:1: (lv_mapmove_2_0= '#mapmove' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3457:1: (lv_mapmove_2_0= '#mapmove' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3458:3: lv_mapmove_2_0= '#mapmove'
                    {
                    lv_mapmove_2_0=(Token)match(input,92,FOLLOW_92_in_ruleMonsterInst28447); 

                            newLeafNode(lv_mapmove_2_0, grammarAccess.getMonsterInst2Access().getMapmoveMapmoveKeyword_2_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getMonsterInst2Rule());
                    	        }
                           		setWithLastConsumed(current, "mapmove", true, "#mapmove");
                    	    

                    }


                    }


                    }
                    break;
                case 4 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3472:6: ( (lv_hp_3_0= '#hp' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3472:6: ( (lv_hp_3_0= '#hp' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3473:1: (lv_hp_3_0= '#hp' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3473:1: (lv_hp_3_0= '#hp' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3474:3: lv_hp_3_0= '#hp'
                    {
                    lv_hp_3_0=(Token)match(input,93,FOLLOW_93_in_ruleMonsterInst28484); 

                            newLeafNode(lv_hp_3_0, grammarAccess.getMonsterInst2Access().getHpHpKeyword_3_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getMonsterInst2Rule());
                    	        }
                           		setWithLastConsumed(current, "hp", true, "#hp");
                    	    

                    }


                    }


                    }
                    break;
                case 5 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3488:6: ( (lv_prot_4_0= '#prot' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3488:6: ( (lv_prot_4_0= '#prot' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3489:1: (lv_prot_4_0= '#prot' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3489:1: (lv_prot_4_0= '#prot' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3490:3: lv_prot_4_0= '#prot'
                    {
                    lv_prot_4_0=(Token)match(input,38,FOLLOW_38_in_ruleMonsterInst28521); 

                            newLeafNode(lv_prot_4_0, grammarAccess.getMonsterInst2Access().getProtProtKeyword_4_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getMonsterInst2Rule());
                    	        }
                           		setWithLastConsumed(current, "prot", true, "#prot");
                    	    

                    }


                    }


                    }
                    break;
                case 6 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3504:6: ( (lv_size_5_0= '#size' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3504:6: ( (lv_size_5_0= '#size' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3505:1: (lv_size_5_0= '#size' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3505:1: (lv_size_5_0= '#size' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3506:3: lv_size_5_0= '#size'
                    {
                    lv_size_5_0=(Token)match(input,94,FOLLOW_94_in_ruleMonsterInst28558); 

                            newLeafNode(lv_size_5_0, grammarAccess.getMonsterInst2Access().getSizeSizeKeyword_5_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getMonsterInst2Rule());
                    	        }
                           		setWithLastConsumed(current, "size", true, "#size");
                    	    

                    }


                    }


                    }
                    break;
                case 7 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3520:6: ( (lv_ressize_6_0= '#ressize' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3520:6: ( (lv_ressize_6_0= '#ressize' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3521:1: (lv_ressize_6_0= '#ressize' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3521:1: (lv_ressize_6_0= '#ressize' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3522:3: lv_ressize_6_0= '#ressize'
                    {
                    lv_ressize_6_0=(Token)match(input,95,FOLLOW_95_in_ruleMonsterInst28595); 

                            newLeafNode(lv_ressize_6_0, grammarAccess.getMonsterInst2Access().getRessizeRessizeKeyword_6_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getMonsterInst2Rule());
                    	        }
                           		setWithLastConsumed(current, "ressize", true, "#ressize");
                    	    

                    }


                    }


                    }
                    break;
                case 8 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3536:6: ( (lv_str_7_0= '#str' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3536:6: ( (lv_str_7_0= '#str' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3537:1: (lv_str_7_0= '#str' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3537:1: (lv_str_7_0= '#str' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3538:3: lv_str_7_0= '#str'
                    {
                    lv_str_7_0=(Token)match(input,96,FOLLOW_96_in_ruleMonsterInst28632); 

                            newLeafNode(lv_str_7_0, grammarAccess.getMonsterInst2Access().getStrStrKeyword_7_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getMonsterInst2Rule());
                    	        }
                           		setWithLastConsumed(current, "str", true, "#str");
                    	    

                    }


                    }


                    }
                    break;
                case 9 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3552:6: ( (lv_enc_8_0= '#enc' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3552:6: ( (lv_enc_8_0= '#enc' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3553:1: (lv_enc_8_0= '#enc' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3553:1: (lv_enc_8_0= '#enc' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3554:3: lv_enc_8_0= '#enc'
                    {
                    lv_enc_8_0=(Token)match(input,40,FOLLOW_40_in_ruleMonsterInst28669); 

                            newLeafNode(lv_enc_8_0, grammarAccess.getMonsterInst2Access().getEncEncKeyword_8_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getMonsterInst2Rule());
                    	        }
                           		setWithLastConsumed(current, "enc", true, "#enc");
                    	    

                    }


                    }


                    }
                    break;
                case 10 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3568:6: ( (lv_att_9_0= '#att' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3568:6: ( (lv_att_9_0= '#att' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3569:1: (lv_att_9_0= '#att' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3569:1: (lv_att_9_0= '#att' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3570:3: lv_att_9_0= '#att'
                    {
                    lv_att_9_0=(Token)match(input,46,FOLLOW_46_in_ruleMonsterInst28706); 

                            newLeafNode(lv_att_9_0, grammarAccess.getMonsterInst2Access().getAttAttKeyword_9_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getMonsterInst2Rule());
                    	        }
                           		setWithLastConsumed(current, "att", true, "#att");
                    	    

                    }


                    }


                    }
                    break;
                case 11 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3584:6: ( (lv_def_10_0= '#def' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3584:6: ( (lv_def_10_0= '#def' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3585:1: (lv_def_10_0= '#def' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3585:1: (lv_def_10_0= '#def' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3586:3: lv_def_10_0= '#def'
                    {
                    lv_def_10_0=(Token)match(input,39,FOLLOW_39_in_ruleMonsterInst28743); 

                            newLeafNode(lv_def_10_0, grammarAccess.getMonsterInst2Access().getDefDefKeyword_10_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getMonsterInst2Rule());
                    	        }
                           		setWithLastConsumed(current, "def", true, "#def");
                    	    

                    }


                    }


                    }
                    break;
                case 12 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3600:6: ( (lv_prec_11_0= '#prec' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3600:6: ( (lv_prec_11_0= '#prec' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3601:1: (lv_prec_11_0= '#prec' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3601:1: (lv_prec_11_0= '#prec' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3602:3: lv_prec_11_0= '#prec'
                    {
                    lv_prec_11_0=(Token)match(input,97,FOLLOW_97_in_ruleMonsterInst28780); 

                            newLeafNode(lv_prec_11_0, grammarAccess.getMonsterInst2Access().getPrecPrecKeyword_11_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getMonsterInst2Rule());
                    	        }
                           		setWithLastConsumed(current, "prec", true, "#prec");
                    	    

                    }


                    }


                    }
                    break;
                case 13 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3616:6: ( (lv_mr_12_0= '#mr' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3616:6: ( (lv_mr_12_0= '#mr' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3617:1: (lv_mr_12_0= '#mr' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3617:1: (lv_mr_12_0= '#mr' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3618:3: lv_mr_12_0= '#mr'
                    {
                    lv_mr_12_0=(Token)match(input,98,FOLLOW_98_in_ruleMonsterInst28817); 

                            newLeafNode(lv_mr_12_0, grammarAccess.getMonsterInst2Access().getMrMrKeyword_12_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getMonsterInst2Rule());
                    	        }
                           		setWithLastConsumed(current, "mr", true, "#mr");
                    	    

                    }


                    }


                    }
                    break;
                case 14 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3632:6: ( (lv_mor_13_0= '#mor' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3632:6: ( (lv_mor_13_0= '#mor' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3633:1: (lv_mor_13_0= '#mor' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3633:1: (lv_mor_13_0= '#mor' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3634:3: lv_mor_13_0= '#mor'
                    {
                    lv_mor_13_0=(Token)match(input,99,FOLLOW_99_in_ruleMonsterInst28854); 

                            newLeafNode(lv_mor_13_0, grammarAccess.getMonsterInst2Access().getMorMorKeyword_13_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getMonsterInst2Rule());
                    	        }
                           		setWithLastConsumed(current, "mor", true, "#mor");
                    	    

                    }


                    }


                    }
                    break;
                case 15 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3648:6: ( (lv_gcost_14_0= '#gcost' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3648:6: ( (lv_gcost_14_0= '#gcost' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3649:1: (lv_gcost_14_0= '#gcost' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3649:1: (lv_gcost_14_0= '#gcost' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3650:3: lv_gcost_14_0= '#gcost'
                    {
                    lv_gcost_14_0=(Token)match(input,100,FOLLOW_100_in_ruleMonsterInst28891); 

                            newLeafNode(lv_gcost_14_0, grammarAccess.getMonsterInst2Access().getGcostGcostKeyword_14_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getMonsterInst2Rule());
                    	        }
                           		setWithLastConsumed(current, "gcost", true, "#gcost");
                    	    

                    }


                    }


                    }
                    break;
                case 16 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3664:6: ( (lv_rcost_15_0= '#rcost' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3664:6: ( (lv_rcost_15_0= '#rcost' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3665:1: (lv_rcost_15_0= '#rcost' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3665:1: (lv_rcost_15_0= '#rcost' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3666:3: lv_rcost_15_0= '#rcost'
                    {
                    lv_rcost_15_0=(Token)match(input,41,FOLLOW_41_in_ruleMonsterInst28928); 

                            newLeafNode(lv_rcost_15_0, grammarAccess.getMonsterInst2Access().getRcostRcostKeyword_15_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getMonsterInst2Rule());
                    	        }
                           		setWithLastConsumed(current, "rcost", true, "#rcost");
                    	    

                    }


                    }


                    }
                    break;
                case 17 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3680:6: ( (lv_pathcost_16_0= '#pathcost' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3680:6: ( (lv_pathcost_16_0= '#pathcost' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3681:1: (lv_pathcost_16_0= '#pathcost' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3681:1: (lv_pathcost_16_0= '#pathcost' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3682:3: lv_pathcost_16_0= '#pathcost'
                    {
                    lv_pathcost_16_0=(Token)match(input,101,FOLLOW_101_in_ruleMonsterInst28965); 

                            newLeafNode(lv_pathcost_16_0, grammarAccess.getMonsterInst2Access().getPathcostPathcostKeyword_16_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getMonsterInst2Rule());
                    	        }
                           		setWithLastConsumed(current, "pathcost", true, "#pathcost");
                    	    

                    }


                    }


                    }
                    break;
                case 18 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3696:6: ( (lv_startdom_17_0= '#startdom' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3696:6: ( (lv_startdom_17_0= '#startdom' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3697:1: (lv_startdom_17_0= '#startdom' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3697:1: (lv_startdom_17_0= '#startdom' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3698:3: lv_startdom_17_0= '#startdom'
                    {
                    lv_startdom_17_0=(Token)match(input,102,FOLLOW_102_in_ruleMonsterInst29002); 

                            newLeafNode(lv_startdom_17_0, grammarAccess.getMonsterInst2Access().getStartdomStartdomKeyword_17_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getMonsterInst2Rule());
                    	        }
                           		setWithLastConsumed(current, "startdom", true, "#startdom");
                    	    

                    }


                    }


                    }
                    break;
                case 19 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3712:6: ( (lv_eyes_18_0= '#eyes' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3712:6: ( (lv_eyes_18_0= '#eyes' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3713:1: (lv_eyes_18_0= '#eyes' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3713:1: (lv_eyes_18_0= '#eyes' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3714:3: lv_eyes_18_0= '#eyes'
                    {
                    lv_eyes_18_0=(Token)match(input,103,FOLLOW_103_in_ruleMonsterInst29039); 

                            newLeafNode(lv_eyes_18_0, grammarAccess.getMonsterInst2Access().getEyesEyesKeyword_18_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getMonsterInst2Rule());
                    	        }
                           		setWithLastConsumed(current, "eyes", true, "#eyes");
                    	    

                    }


                    }


                    }
                    break;
                case 20 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3728:6: ( (lv_copystats_19_0= '#copystats' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3728:6: ( (lv_copystats_19_0= '#copystats' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3729:1: (lv_copystats_19_0= '#copystats' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3729:1: (lv_copystats_19_0= '#copystats' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3730:3: lv_copystats_19_0= '#copystats'
                    {
                    lv_copystats_19_0=(Token)match(input,104,FOLLOW_104_in_ruleMonsterInst29076); 

                            newLeafNode(lv_copystats_19_0, grammarAccess.getMonsterInst2Access().getCopystatsCopystatsKeyword_19_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getMonsterInst2Rule());
                    	        }
                           		setWithLastConsumed(current, "copystats", true, "#copystats");
                    	    

                    }


                    }


                    }
                    break;
                case 21 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3744:6: ( (lv_copyspr_20_0= '#copyspr' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3744:6: ( (lv_copyspr_20_0= '#copyspr' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3745:1: (lv_copyspr_20_0= '#copyspr' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3745:1: (lv_copyspr_20_0= '#copyspr' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3746:3: lv_copyspr_20_0= '#copyspr'
                    {
                    lv_copyspr_20_0=(Token)match(input,105,FOLLOW_105_in_ruleMonsterInst29113); 

                            newLeafNode(lv_copyspr_20_0, grammarAccess.getMonsterInst2Access().getCopysprCopysprKeyword_20_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getMonsterInst2Rule());
                    	        }
                           		setWithLastConsumed(current, "copyspr", true, "#copyspr");
                    	    

                    }


                    }


                    }
                    break;
                case 22 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3760:6: ( (lv_restrictedgod_21_0= '#restrictedgod' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3760:6: ( (lv_restrictedgod_21_0= '#restrictedgod' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3761:1: (lv_restrictedgod_21_0= '#restrictedgod' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3761:1: (lv_restrictedgod_21_0= '#restrictedgod' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3762:3: lv_restrictedgod_21_0= '#restrictedgod'
                    {
                    lv_restrictedgod_21_0=(Token)match(input,106,FOLLOW_106_in_ruleMonsterInst29150); 

                            newLeafNode(lv_restrictedgod_21_0, grammarAccess.getMonsterInst2Access().getRestrictedgodRestrictedgodKeyword_21_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getMonsterInst2Rule());
                    	        }
                           		setWithLastConsumed(current, "restrictedgod", true, "#restrictedgod");
                    	    

                    }


                    }


                    }
                    break;
                case 23 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3776:6: ( (lv_shatteredsoul_22_0= '#shatteredsoul' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3776:6: ( (lv_shatteredsoul_22_0= '#shatteredsoul' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3777:1: (lv_shatteredsoul_22_0= '#shatteredsoul' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3777:1: (lv_shatteredsoul_22_0= '#shatteredsoul' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3778:3: lv_shatteredsoul_22_0= '#shatteredsoul'
                    {
                    lv_shatteredsoul_22_0=(Token)match(input,107,FOLLOW_107_in_ruleMonsterInst29187); 

                            newLeafNode(lv_shatteredsoul_22_0, grammarAccess.getMonsterInst2Access().getShatteredsoulShatteredsoulKeyword_22_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getMonsterInst2Rule());
                    	        }
                           		setWithLastConsumed(current, "shatteredsoul", true, "#shatteredsoul");
                    	    

                    }


                    }


                    }
                    break;
                case 24 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3792:6: ( (lv_coldres_23_0= '#coldres' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3792:6: ( (lv_coldres_23_0= '#coldres' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3793:1: (lv_coldres_23_0= '#coldres' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3793:1: (lv_coldres_23_0= '#coldres' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3794:3: lv_coldres_23_0= '#coldres'
                    {
                    lv_coldres_23_0=(Token)match(input,108,FOLLOW_108_in_ruleMonsterInst29224); 

                            newLeafNode(lv_coldres_23_0, grammarAccess.getMonsterInst2Access().getColdresColdresKeyword_23_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getMonsterInst2Rule());
                    	        }
                           		setWithLastConsumed(current, "coldres", true, "#coldres");
                    	    

                    }


                    }


                    }
                    break;
                case 25 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3808:6: ( (lv_coldres_24_0= '#coldresist' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3808:6: ( (lv_coldres_24_0= '#coldresist' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3809:1: (lv_coldres_24_0= '#coldresist' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3809:1: (lv_coldres_24_0= '#coldresist' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3810:3: lv_coldres_24_0= '#coldresist'
                    {
                    lv_coldres_24_0=(Token)match(input,109,FOLLOW_109_in_ruleMonsterInst29261); 

                            newLeafNode(lv_coldres_24_0, grammarAccess.getMonsterInst2Access().getColdresColdresistKeyword_24_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getMonsterInst2Rule());
                    	        }
                           		setWithLastConsumed(current, "coldres", true, "#coldresist");
                    	    

                    }


                    }


                    }
                    break;
                case 26 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3824:6: ( (lv_fireres_25_0= '#fireres' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3824:6: ( (lv_fireres_25_0= '#fireres' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3825:1: (lv_fireres_25_0= '#fireres' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3825:1: (lv_fireres_25_0= '#fireres' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3826:3: lv_fireres_25_0= '#fireres'
                    {
                    lv_fireres_25_0=(Token)match(input,110,FOLLOW_110_in_ruleMonsterInst29298); 

                            newLeafNode(lv_fireres_25_0, grammarAccess.getMonsterInst2Access().getFireresFireresKeyword_25_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getMonsterInst2Rule());
                    	        }
                           		setWithLastConsumed(current, "fireres", true, "#fireres");
                    	    

                    }


                    }


                    }
                    break;
                case 27 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3840:6: ( (lv_fireres_26_0= '#fireresist' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3840:6: ( (lv_fireres_26_0= '#fireresist' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3841:1: (lv_fireres_26_0= '#fireresist' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3841:1: (lv_fireres_26_0= '#fireresist' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3842:3: lv_fireres_26_0= '#fireresist'
                    {
                    lv_fireres_26_0=(Token)match(input,111,FOLLOW_111_in_ruleMonsterInst29335); 

                            newLeafNode(lv_fireres_26_0, grammarAccess.getMonsterInst2Access().getFireresFireresistKeyword_26_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getMonsterInst2Rule());
                    	        }
                           		setWithLastConsumed(current, "fireres", true, "#fireresist");
                    	    

                    }


                    }


                    }
                    break;
                case 28 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3856:6: ( (lv_poisonres_27_0= '#poisonres' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3856:6: ( (lv_poisonres_27_0= '#poisonres' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3857:1: (lv_poisonres_27_0= '#poisonres' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3857:1: (lv_poisonres_27_0= '#poisonres' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3858:3: lv_poisonres_27_0= '#poisonres'
                    {
                    lv_poisonres_27_0=(Token)match(input,112,FOLLOW_112_in_ruleMonsterInst29372); 

                            newLeafNode(lv_poisonres_27_0, grammarAccess.getMonsterInst2Access().getPoisonresPoisonresKeyword_27_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getMonsterInst2Rule());
                    	        }
                           		setWithLastConsumed(current, "poisonres", true, "#poisonres");
                    	    

                    }


                    }


                    }
                    break;
                case 29 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3872:6: ( (lv_shockres_28_0= '#shockres' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3872:6: ( (lv_shockres_28_0= '#shockres' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3873:1: (lv_shockres_28_0= '#shockres' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3873:1: (lv_shockres_28_0= '#shockres' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3874:3: lv_shockres_28_0= '#shockres'
                    {
                    lv_shockres_28_0=(Token)match(input,113,FOLLOW_113_in_ruleMonsterInst29409); 

                            newLeafNode(lv_shockres_28_0, grammarAccess.getMonsterInst2Access().getShockresShockresKeyword_28_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getMonsterInst2Rule());
                    	        }
                           		setWithLastConsumed(current, "shockres", true, "#shockres");
                    	    

                    }


                    }


                    }
                    break;
                case 30 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3888:6: ( (lv_darkvision_29_0= '#darkvision' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3888:6: ( (lv_darkvision_29_0= '#darkvision' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3889:1: (lv_darkvision_29_0= '#darkvision' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3889:1: (lv_darkvision_29_0= '#darkvision' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3890:3: lv_darkvision_29_0= '#darkvision'
                    {
                    lv_darkvision_29_0=(Token)match(input,114,FOLLOW_114_in_ruleMonsterInst29446); 

                            newLeafNode(lv_darkvision_29_0, grammarAccess.getMonsterInst2Access().getDarkvisionDarkvisionKeyword_29_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getMonsterInst2Rule());
                    	        }
                           		setWithLastConsumed(current, "darkvision", true, "#darkvision");
                    	    

                    }


                    }


                    }
                    break;
                case 31 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3904:6: ( (lv_seduce_30_0= '#seduce' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3904:6: ( (lv_seduce_30_0= '#seduce' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3905:1: (lv_seduce_30_0= '#seduce' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3905:1: (lv_seduce_30_0= '#seduce' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3906:3: lv_seduce_30_0= '#seduce'
                    {
                    lv_seduce_30_0=(Token)match(input,115,FOLLOW_115_in_ruleMonsterInst29483); 

                            newLeafNode(lv_seduce_30_0, grammarAccess.getMonsterInst2Access().getSeduceSeduceKeyword_30_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getMonsterInst2Rule());
                    	        }
                           		setWithLastConsumed(current, "seduce", true, "#seduce");
                    	    

                    }


                    }


                    }
                    break;
                case 32 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3920:6: ( (lv_succubus_31_0= '#succubus' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3920:6: ( (lv_succubus_31_0= '#succubus' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3921:1: (lv_succubus_31_0= '#succubus' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3921:1: (lv_succubus_31_0= '#succubus' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3922:3: lv_succubus_31_0= '#succubus'
                    {
                    lv_succubus_31_0=(Token)match(input,116,FOLLOW_116_in_ruleMonsterInst29520); 

                            newLeafNode(lv_succubus_31_0, grammarAccess.getMonsterInst2Access().getSuccubusSuccubusKeyword_31_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getMonsterInst2Rule());
                    	        }
                           		setWithLastConsumed(current, "succubus", true, "#succubus");
                    	    

                    }


                    }


                    }
                    break;
                case 33 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3936:6: ( (lv_beckon_32_0= '#beckon' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3936:6: ( (lv_beckon_32_0= '#beckon' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3937:1: (lv_beckon_32_0= '#beckon' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3937:1: (lv_beckon_32_0= '#beckon' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3938:3: lv_beckon_32_0= '#beckon'
                    {
                    lv_beckon_32_0=(Token)match(input,117,FOLLOW_117_in_ruleMonsterInst29557); 

                            newLeafNode(lv_beckon_32_0, grammarAccess.getMonsterInst2Access().getBeckonBeckonKeyword_32_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getMonsterInst2Rule());
                    	        }
                           		setWithLastConsumed(current, "beckon", true, "#beckon");
                    	    

                    }


                    }


                    }
                    break;
                case 34 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3952:6: ( (lv_startage_33_0= '#startage' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3952:6: ( (lv_startage_33_0= '#startage' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3953:1: (lv_startage_33_0= '#startage' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3953:1: (lv_startage_33_0= '#startage' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3954:3: lv_startage_33_0= '#startage'
                    {
                    lv_startage_33_0=(Token)match(input,118,FOLLOW_118_in_ruleMonsterInst29594); 

                            newLeafNode(lv_startage_33_0, grammarAccess.getMonsterInst2Access().getStartageStartageKeyword_33_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getMonsterInst2Rule());
                    	        }
                           		setWithLastConsumed(current, "startage", true, "#startage");
                    	    

                    }


                    }


                    }
                    break;
                case 35 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3968:6: ( (lv_maxage_34_0= '#maxage' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3968:6: ( (lv_maxage_34_0= '#maxage' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3969:1: (lv_maxage_34_0= '#maxage' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3969:1: (lv_maxage_34_0= '#maxage' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3970:3: lv_maxage_34_0= '#maxage'
                    {
                    lv_maxage_34_0=(Token)match(input,119,FOLLOW_119_in_ruleMonsterInst29631); 

                            newLeafNode(lv_maxage_34_0, grammarAccess.getMonsterInst2Access().getMaxageMaxageKeyword_34_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getMonsterInst2Rule());
                    	        }
                           		setWithLastConsumed(current, "maxage", true, "#maxage");
                    	    

                    }


                    }


                    }
                    break;
                case 36 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3984:6: ( (lv_older_35_0= '#older' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3984:6: ( (lv_older_35_0= '#older' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3985:1: (lv_older_35_0= '#older' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3985:1: (lv_older_35_0= '#older' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:3986:3: lv_older_35_0= '#older'
                    {
                    lv_older_35_0=(Token)match(input,120,FOLLOW_120_in_ruleMonsterInst29668); 

                            newLeafNode(lv_older_35_0, grammarAccess.getMonsterInst2Access().getOlderOlderKeyword_35_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getMonsterInst2Rule());
                    	        }
                           		setWithLastConsumed(current, "older", true, "#older");
                    	    

                    }


                    }


                    }
                    break;
                case 37 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4000:6: ( (lv_healer_36_0= '#healer' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4000:6: ( (lv_healer_36_0= '#healer' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4001:1: (lv_healer_36_0= '#healer' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4001:1: (lv_healer_36_0= '#healer' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4002:3: lv_healer_36_0= '#healer'
                    {
                    lv_healer_36_0=(Token)match(input,121,FOLLOW_121_in_ruleMonsterInst29705); 

                            newLeafNode(lv_healer_36_0, grammarAccess.getMonsterInst2Access().getHealerHealerKeyword_36_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getMonsterInst2Rule());
                    	        }
                           		setWithLastConsumed(current, "healer", true, "#healer");
                    	    

                    }


                    }


                    }
                    break;
                case 38 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4016:6: ( (lv_startaff_37_0= '#startaff' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4016:6: ( (lv_startaff_37_0= '#startaff' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4017:1: (lv_startaff_37_0= '#startaff' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4017:1: (lv_startaff_37_0= '#startaff' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4018:3: lv_startaff_37_0= '#startaff'
                    {
                    lv_startaff_37_0=(Token)match(input,122,FOLLOW_122_in_ruleMonsterInst29742); 

                            newLeafNode(lv_startaff_37_0, grammarAccess.getMonsterInst2Access().getStartaffStartaffKeyword_37_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getMonsterInst2Rule());
                    	        }
                           		setWithLastConsumed(current, "startaff", true, "#startaff");
                    	    

                    }


                    }


                    }
                    break;
                case 39 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4032:6: ( (lv_supplybonus_38_0= '#supplybonus' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4032:6: ( (lv_supplybonus_38_0= '#supplybonus' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4033:1: (lv_supplybonus_38_0= '#supplybonus' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4033:1: (lv_supplybonus_38_0= '#supplybonus' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4034:3: lv_supplybonus_38_0= '#supplybonus'
                    {
                    lv_supplybonus_38_0=(Token)match(input,123,FOLLOW_123_in_ruleMonsterInst29779); 

                            newLeafNode(lv_supplybonus_38_0, grammarAccess.getMonsterInst2Access().getSupplybonusSupplybonusKeyword_38_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getMonsterInst2Rule());
                    	        }
                           		setWithLastConsumed(current, "supplybonus", true, "#supplybonus");
                    	    

                    }


                    }


                    }
                    break;
                case 40 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4048:6: ( (lv_uwdamage_39_0= '#uwdamage' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4048:6: ( (lv_uwdamage_39_0= '#uwdamage' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4049:1: (lv_uwdamage_39_0= '#uwdamage' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4049:1: (lv_uwdamage_39_0= '#uwdamage' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4050:3: lv_uwdamage_39_0= '#uwdamage'
                    {
                    lv_uwdamage_39_0=(Token)match(input,124,FOLLOW_124_in_ruleMonsterInst29816); 

                            newLeafNode(lv_uwdamage_39_0, grammarAccess.getMonsterInst2Access().getUwdamageUwdamageKeyword_39_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getMonsterInst2Rule());
                    	        }
                           		setWithLastConsumed(current, "uwdamage", true, "#uwdamage");
                    	    

                    }


                    }


                    }
                    break;
                case 41 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4064:6: ( (lv_homesick_40_0= '#homesick' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4064:6: ( (lv_homesick_40_0= '#homesick' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4065:1: (lv_homesick_40_0= '#homesick' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4065:1: (lv_homesick_40_0= '#homesick' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4066:3: lv_homesick_40_0= '#homesick'
                    {
                    lv_homesick_40_0=(Token)match(input,125,FOLLOW_125_in_ruleMonsterInst29853); 

                            newLeafNode(lv_homesick_40_0, grammarAccess.getMonsterInst2Access().getHomesickHomesickKeyword_40_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getMonsterInst2Rule());
                    	        }
                           		setWithLastConsumed(current, "homesick", true, "#homesick");
                    	    

                    }


                    }


                    }
                    break;
                case 42 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4080:6: ( (lv_coldpower_41_0= '#coldpower' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4080:6: ( (lv_coldpower_41_0= '#coldpower' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4081:1: (lv_coldpower_41_0= '#coldpower' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4081:1: (lv_coldpower_41_0= '#coldpower' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4082:3: lv_coldpower_41_0= '#coldpower'
                    {
                    lv_coldpower_41_0=(Token)match(input,126,FOLLOW_126_in_ruleMonsterInst29890); 

                            newLeafNode(lv_coldpower_41_0, grammarAccess.getMonsterInst2Access().getColdpowerColdpowerKeyword_41_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getMonsterInst2Rule());
                    	        }
                           		setWithLastConsumed(current, "coldpower", true, "#coldpower");
                    	    

                    }


                    }


                    }
                    break;
                case 43 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4096:6: ( (lv_firepower_42_0= '#firepower' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4096:6: ( (lv_firepower_42_0= '#firepower' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4097:1: (lv_firepower_42_0= '#firepower' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4097:1: (lv_firepower_42_0= '#firepower' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4098:3: lv_firepower_42_0= '#firepower'
                    {
                    lv_firepower_42_0=(Token)match(input,127,FOLLOW_127_in_ruleMonsterInst29927); 

                            newLeafNode(lv_firepower_42_0, grammarAccess.getMonsterInst2Access().getFirepowerFirepowerKeyword_42_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getMonsterInst2Rule());
                    	        }
                           		setWithLastConsumed(current, "firepower", true, "#firepower");
                    	    

                    }


                    }


                    }
                    break;
                case 44 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4112:6: ( (lv_stormpower_43_0= '#stormpower' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4112:6: ( (lv_stormpower_43_0= '#stormpower' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4113:1: (lv_stormpower_43_0= '#stormpower' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4113:1: (lv_stormpower_43_0= '#stormpower' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4114:3: lv_stormpower_43_0= '#stormpower'
                    {
                    lv_stormpower_43_0=(Token)match(input,128,FOLLOW_128_in_ruleMonsterInst29964); 

                            newLeafNode(lv_stormpower_43_0, grammarAccess.getMonsterInst2Access().getStormpowerStormpowerKeyword_43_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getMonsterInst2Rule());
                    	        }
                           		setWithLastConsumed(current, "stormpower", true, "#stormpower");
                    	    

                    }


                    }


                    }
                    break;
                case 45 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4128:6: ( (lv_darkpower_44_0= '#darkpower' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4128:6: ( (lv_darkpower_44_0= '#darkpower' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4129:1: (lv_darkpower_44_0= '#darkpower' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4129:1: (lv_darkpower_44_0= '#darkpower' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4130:3: lv_darkpower_44_0= '#darkpower'
                    {
                    lv_darkpower_44_0=(Token)match(input,129,FOLLOW_129_in_ruleMonsterInst210001); 

                            newLeafNode(lv_darkpower_44_0, grammarAccess.getMonsterInst2Access().getDarkpowerDarkpowerKeyword_44_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getMonsterInst2Rule());
                    	        }
                           		setWithLastConsumed(current, "darkpower", true, "#darkpower");
                    	    

                    }


                    }


                    }
                    break;
                case 46 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4144:6: ( (lv_springpower_45_0= '#springpower' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4144:6: ( (lv_springpower_45_0= '#springpower' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4145:1: (lv_springpower_45_0= '#springpower' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4145:1: (lv_springpower_45_0= '#springpower' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4146:3: lv_springpower_45_0= '#springpower'
                    {
                    lv_springpower_45_0=(Token)match(input,130,FOLLOW_130_in_ruleMonsterInst210038); 

                            newLeafNode(lv_springpower_45_0, grammarAccess.getMonsterInst2Access().getSpringpowerSpringpowerKeyword_45_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getMonsterInst2Rule());
                    	        }
                           		setWithLastConsumed(current, "springpower", true, "#springpower");
                    	    

                    }


                    }


                    }
                    break;
                case 47 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4160:6: ( (lv_summerpower_46_0= '#summerpower' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4160:6: ( (lv_summerpower_46_0= '#summerpower' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4161:1: (lv_summerpower_46_0= '#summerpower' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4161:1: (lv_summerpower_46_0= '#summerpower' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4162:3: lv_summerpower_46_0= '#summerpower'
                    {
                    lv_summerpower_46_0=(Token)match(input,131,FOLLOW_131_in_ruleMonsterInst210075); 

                            newLeafNode(lv_summerpower_46_0, grammarAccess.getMonsterInst2Access().getSummerpowerSummerpowerKeyword_46_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getMonsterInst2Rule());
                    	        }
                           		setWithLastConsumed(current, "summerpower", true, "#summerpower");
                    	    

                    }


                    }


                    }
                    break;
                case 48 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4176:6: ( (lv_fallpower_47_0= '#fallpower' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4176:6: ( (lv_fallpower_47_0= '#fallpower' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4177:1: (lv_fallpower_47_0= '#fallpower' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4177:1: (lv_fallpower_47_0= '#fallpower' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4178:3: lv_fallpower_47_0= '#fallpower'
                    {
                    lv_fallpower_47_0=(Token)match(input,132,FOLLOW_132_in_ruleMonsterInst210112); 

                            newLeafNode(lv_fallpower_47_0, grammarAccess.getMonsterInst2Access().getFallpowerFallpowerKeyword_47_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getMonsterInst2Rule());
                    	        }
                           		setWithLastConsumed(current, "fallpower", true, "#fallpower");
                    	    

                    }


                    }


                    }
                    break;
                case 49 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4192:6: ( (lv_winterpower_48_0= '#winterpower' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4192:6: ( (lv_winterpower_48_0= '#winterpower' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4193:1: (lv_winterpower_48_0= '#winterpower' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4193:1: (lv_winterpower_48_0= '#winterpower' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4194:3: lv_winterpower_48_0= '#winterpower'
                    {
                    lv_winterpower_48_0=(Token)match(input,133,FOLLOW_133_in_ruleMonsterInst210149); 

                            newLeafNode(lv_winterpower_48_0, grammarAccess.getMonsterInst2Access().getWinterpowerWinterpowerKeyword_48_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getMonsterInst2Rule());
                    	        }
                           		setWithLastConsumed(current, "winterpower", true, "#winterpower");
                    	    

                    }


                    }


                    }
                    break;
                case 50 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4208:6: ( (lv_ambidextrous_49_0= '#ambidextrous' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4208:6: ( (lv_ambidextrous_49_0= '#ambidextrous' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4209:1: (lv_ambidextrous_49_0= '#ambidextrous' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4209:1: (lv_ambidextrous_49_0= '#ambidextrous' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4210:3: lv_ambidextrous_49_0= '#ambidextrous'
                    {
                    lv_ambidextrous_49_0=(Token)match(input,134,FOLLOW_134_in_ruleMonsterInst210186); 

                            newLeafNode(lv_ambidextrous_49_0, grammarAccess.getMonsterInst2Access().getAmbidextrousAmbidextrousKeyword_49_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getMonsterInst2Rule());
                    	        }
                           		setWithLastConsumed(current, "ambidextrous", true, "#ambidextrous");
                    	    

                    }


                    }


                    }
                    break;
                case 51 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4224:6: ( (lv_banefireshield_50_0= '#banefireshield' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4224:6: ( (lv_banefireshield_50_0= '#banefireshield' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4225:1: (lv_banefireshield_50_0= '#banefireshield' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4225:1: (lv_banefireshield_50_0= '#banefireshield' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4226:3: lv_banefireshield_50_0= '#banefireshield'
                    {
                    lv_banefireshield_50_0=(Token)match(input,135,FOLLOW_135_in_ruleMonsterInst210223); 

                            newLeafNode(lv_banefireshield_50_0, grammarAccess.getMonsterInst2Access().getBanefireshieldBanefireshieldKeyword_50_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getMonsterInst2Rule());
                    	        }
                           		setWithLastConsumed(current, "banefireshield", true, "#banefireshield");
                    	    

                    }


                    }


                    }
                    break;
                case 52 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4240:6: ( (lv_berserk_51_0= '#berserk' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4240:6: ( (lv_berserk_51_0= '#berserk' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4241:1: (lv_berserk_51_0= '#berserk' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4241:1: (lv_berserk_51_0= '#berserk' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4242:3: lv_berserk_51_0= '#berserk'
                    {
                    lv_berserk_51_0=(Token)match(input,136,FOLLOW_136_in_ruleMonsterInst210260); 

                            newLeafNode(lv_berserk_51_0, grammarAccess.getMonsterInst2Access().getBerserkBerserkKeyword_51_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getMonsterInst2Rule());
                    	        }
                           		setWithLastConsumed(current, "berserk", true, "#berserk");
                    	    

                    }


                    }


                    }
                    break;
                case 53 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4256:6: ( (lv_standard_52_0= '#standard' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4256:6: ( (lv_standard_52_0= '#standard' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4257:1: (lv_standard_52_0= '#standard' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4257:1: (lv_standard_52_0= '#standard' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4258:3: lv_standard_52_0= '#standard'
                    {
                    lv_standard_52_0=(Token)match(input,137,FOLLOW_137_in_ruleMonsterInst210297); 

                            newLeafNode(lv_standard_52_0, grammarAccess.getMonsterInst2Access().getStandardStandardKeyword_52_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getMonsterInst2Rule());
                    	        }
                           		setWithLastConsumed(current, "standard", true, "#standard");
                    	    

                    }


                    }


                    }
                    break;
                case 54 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4272:6: ( (lv_animalawe_53_0= '#animalawe' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4272:6: ( (lv_animalawe_53_0= '#animalawe' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4273:1: (lv_animalawe_53_0= '#animalawe' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4273:1: (lv_animalawe_53_0= '#animalawe' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4274:3: lv_animalawe_53_0= '#animalawe'
                    {
                    lv_animalawe_53_0=(Token)match(input,138,FOLLOW_138_in_ruleMonsterInst210334); 

                            newLeafNode(lv_animalawe_53_0, grammarAccess.getMonsterInst2Access().getAnimalaweAnimalaweKeyword_53_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getMonsterInst2Rule());
                    	        }
                           		setWithLastConsumed(current, "animalawe", true, "#animalawe");
                    	    

                    }


                    }


                    }
                    break;
                case 55 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4288:6: ( (lv_awe_54_0= '#awe' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4288:6: ( (lv_awe_54_0= '#awe' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4289:1: (lv_awe_54_0= '#awe' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4289:1: (lv_awe_54_0= '#awe' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4290:3: lv_awe_54_0= '#awe'
                    {
                    lv_awe_54_0=(Token)match(input,139,FOLLOW_139_in_ruleMonsterInst210371); 

                            newLeafNode(lv_awe_54_0, grammarAccess.getMonsterInst2Access().getAweAweKeyword_54_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getMonsterInst2Rule());
                    	        }
                           		setWithLastConsumed(current, "awe", true, "#awe");
                    	    

                    }


                    }


                    }
                    break;
                case 56 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4304:6: ( (lv_fear_55_0= '#fear' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4304:6: ( (lv_fear_55_0= '#fear' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4305:1: (lv_fear_55_0= '#fear' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4305:1: (lv_fear_55_0= '#fear' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4306:3: lv_fear_55_0= '#fear'
                    {
                    lv_fear_55_0=(Token)match(input,140,FOLLOW_140_in_ruleMonsterInst210408); 

                            newLeafNode(lv_fear_55_0, grammarAccess.getMonsterInst2Access().getFearFearKeyword_55_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getMonsterInst2Rule());
                    	        }
                           		setWithLastConsumed(current, "fear", true, "#fear");
                    	    

                    }


                    }


                    }
                    break;
                case 57 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4320:6: ( (lv_regeneration_56_0= '#regeneration' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4320:6: ( (lv_regeneration_56_0= '#regeneration' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4321:1: (lv_regeneration_56_0= '#regeneration' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4321:1: (lv_regeneration_56_0= '#regeneration' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4322:3: lv_regeneration_56_0= '#regeneration'
                    {
                    lv_regeneration_56_0=(Token)match(input,141,FOLLOW_141_in_ruleMonsterInst210445); 

                            newLeafNode(lv_regeneration_56_0, grammarAccess.getMonsterInst2Access().getRegenerationRegenerationKeyword_56_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getMonsterInst2Rule());
                    	        }
                           		setWithLastConsumed(current, "regeneration", true, "#regeneration");
                    	    

                    }


                    }


                    }
                    break;
                case 58 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4336:6: ( (lv_reinvigoration_57_0= '#reinvigoration' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4336:6: ( (lv_reinvigoration_57_0= '#reinvigoration' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4337:1: (lv_reinvigoration_57_0= '#reinvigoration' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4337:1: (lv_reinvigoration_57_0= '#reinvigoration' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4338:3: lv_reinvigoration_57_0= '#reinvigoration'
                    {
                    lv_reinvigoration_57_0=(Token)match(input,142,FOLLOW_142_in_ruleMonsterInst210482); 

                            newLeafNode(lv_reinvigoration_57_0, grammarAccess.getMonsterInst2Access().getReinvigorationReinvigorationKeyword_57_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getMonsterInst2Rule());
                    	        }
                           		setWithLastConsumed(current, "reinvigoration", true, "#reinvigoration");
                    	    

                    }


                    }


                    }
                    break;
                case 59 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4352:6: ( (lv_fireshield_58_0= '#fireshield' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4352:6: ( (lv_fireshield_58_0= '#fireshield' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4353:1: (lv_fireshield_58_0= '#fireshield' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4353:1: (lv_fireshield_58_0= '#fireshield' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4354:3: lv_fireshield_58_0= '#fireshield'
                    {
                    lv_fireshield_58_0=(Token)match(input,143,FOLLOW_143_in_ruleMonsterInst210519); 

                            newLeafNode(lv_fireshield_58_0, grammarAccess.getMonsterInst2Access().getFireshieldFireshieldKeyword_58_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getMonsterInst2Rule());
                    	        }
                           		setWithLastConsumed(current, "fireshield", true, "#fireshield");
                    	    

                    }


                    }


                    }
                    break;
                case 60 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4368:6: ( (lv_iceprot_59_0= '#iceprot' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4368:6: ( (lv_iceprot_59_0= '#iceprot' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4369:1: (lv_iceprot_59_0= '#iceprot' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4369:1: (lv_iceprot_59_0= '#iceprot' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4370:3: lv_iceprot_59_0= '#iceprot'
                    {
                    lv_iceprot_59_0=(Token)match(input,144,FOLLOW_144_in_ruleMonsterInst210556); 

                            newLeafNode(lv_iceprot_59_0, grammarAccess.getMonsterInst2Access().getIceprotIceprotKeyword_59_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getMonsterInst2Rule());
                    	        }
                           		setWithLastConsumed(current, "iceprot", true, "#iceprot");
                    	    

                    }


                    }


                    }
                    break;
                case 61 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4384:6: ( (lv_poisoncloud_60_0= '#poisoncloud' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4384:6: ( (lv_poisoncloud_60_0= '#poisoncloud' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4385:1: (lv_poisoncloud_60_0= '#poisoncloud' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4385:1: (lv_poisoncloud_60_0= '#poisoncloud' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4386:3: lv_poisoncloud_60_0= '#poisoncloud'
                    {
                    lv_poisoncloud_60_0=(Token)match(input,145,FOLLOW_145_in_ruleMonsterInst210593); 

                            newLeafNode(lv_poisoncloud_60_0, grammarAccess.getMonsterInst2Access().getPoisoncloudPoisoncloudKeyword_60_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getMonsterInst2Rule());
                    	        }
                           		setWithLastConsumed(current, "poisoncloud", true, "#poisoncloud");
                    	    

                    }


                    }


                    }
                    break;
                case 62 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4400:6: ( (lv_diseasecloud_61_0= '#diseasecloud' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4400:6: ( (lv_diseasecloud_61_0= '#diseasecloud' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4401:1: (lv_diseasecloud_61_0= '#diseasecloud' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4401:1: (lv_diseasecloud_61_0= '#diseasecloud' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4402:3: lv_diseasecloud_61_0= '#diseasecloud'
                    {
                    lv_diseasecloud_61_0=(Token)match(input,146,FOLLOW_146_in_ruleMonsterInst210630); 

                            newLeafNode(lv_diseasecloud_61_0, grammarAccess.getMonsterInst2Access().getDiseasecloudDiseasecloudKeyword_61_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getMonsterInst2Rule());
                    	        }
                           		setWithLastConsumed(current, "diseasecloud", true, "#diseasecloud");
                    	    

                    }


                    }


                    }
                    break;
                case 63 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4416:6: ( (lv_bloodvengeance_62_0= '#bloodvengeance' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4416:6: ( (lv_bloodvengeance_62_0= '#bloodvengeance' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4417:1: (lv_bloodvengeance_62_0= '#bloodvengeance' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4417:1: (lv_bloodvengeance_62_0= '#bloodvengeance' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4418:3: lv_bloodvengeance_62_0= '#bloodvengeance'
                    {
                    lv_bloodvengeance_62_0=(Token)match(input,147,FOLLOW_147_in_ruleMonsterInst210667); 

                            newLeafNode(lv_bloodvengeance_62_0, grammarAccess.getMonsterInst2Access().getBloodvengeanceBloodvengeanceKeyword_62_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getMonsterInst2Rule());
                    	        }
                           		setWithLastConsumed(current, "bloodvengeance", true, "#bloodvengeance");
                    	    

                    }


                    }


                    }
                    break;
                case 64 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4432:6: ( (lv_castledef_63_0= '#castledef' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4432:6: ( (lv_castledef_63_0= '#castledef' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4433:1: (lv_castledef_63_0= '#castledef' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4433:1: (lv_castledef_63_0= '#castledef' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4434:3: lv_castledef_63_0= '#castledef'
                    {
                    lv_castledef_63_0=(Token)match(input,148,FOLLOW_148_in_ruleMonsterInst210704); 

                            newLeafNode(lv_castledef_63_0, grammarAccess.getMonsterInst2Access().getCastledefCastledefKeyword_63_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getMonsterInst2Rule());
                    	        }
                           		setWithLastConsumed(current, "castledef", true, "#castledef");
                    	    

                    }


                    }


                    }
                    break;
                case 65 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4448:6: ( (lv_siegebonus_64_0= '#siegebonus' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4448:6: ( (lv_siegebonus_64_0= '#siegebonus' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4449:1: (lv_siegebonus_64_0= '#siegebonus' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4449:1: (lv_siegebonus_64_0= '#siegebonus' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4450:3: lv_siegebonus_64_0= '#siegebonus'
                    {
                    lv_siegebonus_64_0=(Token)match(input,149,FOLLOW_149_in_ruleMonsterInst210741); 

                            newLeafNode(lv_siegebonus_64_0, grammarAccess.getMonsterInst2Access().getSiegebonusSiegebonusKeyword_64_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getMonsterInst2Rule());
                    	        }
                           		setWithLastConsumed(current, "siegebonus", true, "#siegebonus");
                    	    

                    }


                    }


                    }
                    break;
                case 66 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4464:6: ( (lv_patrolbonus_65_0= '#patrolbonus' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4464:6: ( (lv_patrolbonus_65_0= '#patrolbonus' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4465:1: (lv_patrolbonus_65_0= '#patrolbonus' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4465:1: (lv_patrolbonus_65_0= '#patrolbonus' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4466:3: lv_patrolbonus_65_0= '#patrolbonus'
                    {
                    lv_patrolbonus_65_0=(Token)match(input,150,FOLLOW_150_in_ruleMonsterInst210778); 

                            newLeafNode(lv_patrolbonus_65_0, grammarAccess.getMonsterInst2Access().getPatrolbonusPatrolbonusKeyword_65_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getMonsterInst2Rule());
                    	        }
                           		setWithLastConsumed(current, "patrolbonus", true, "#patrolbonus");
                    	    

                    }


                    }


                    }
                    break;
                case 67 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4480:6: ( (lv_pillagebonus_66_0= '#pillagebonus' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4480:6: ( (lv_pillagebonus_66_0= '#pillagebonus' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4481:1: (lv_pillagebonus_66_0= '#pillagebonus' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4481:1: (lv_pillagebonus_66_0= '#pillagebonus' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4482:3: lv_pillagebonus_66_0= '#pillagebonus'
                    {
                    lv_pillagebonus_66_0=(Token)match(input,151,FOLLOW_151_in_ruleMonsterInst210815); 

                            newLeafNode(lv_pillagebonus_66_0, grammarAccess.getMonsterInst2Access().getPillagebonusPillagebonusKeyword_66_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getMonsterInst2Rule());
                    	        }
                           		setWithLastConsumed(current, "pillagebonus", true, "#pillagebonus");
                    	    

                    }


                    }


                    }
                    break;
                case 68 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4496:6: ( (lv_researchbonus_67_0= '#researchbonus' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4496:6: ( (lv_researchbonus_67_0= '#researchbonus' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4497:1: (lv_researchbonus_67_0= '#researchbonus' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4497:1: (lv_researchbonus_67_0= '#researchbonus' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4498:3: lv_researchbonus_67_0= '#researchbonus'
                    {
                    lv_researchbonus_67_0=(Token)match(input,152,FOLLOW_152_in_ruleMonsterInst210852); 

                            newLeafNode(lv_researchbonus_67_0, grammarAccess.getMonsterInst2Access().getResearchbonusResearchbonusKeyword_67_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getMonsterInst2Rule());
                    	        }
                           		setWithLastConsumed(current, "researchbonus", true, "#researchbonus");
                    	    

                    }


                    }


                    }
                    break;
                case 69 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4512:6: ( (lv_forgebonus_68_0= '#forgebonus' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4512:6: ( (lv_forgebonus_68_0= '#forgebonus' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4513:1: (lv_forgebonus_68_0= '#forgebonus' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4513:1: (lv_forgebonus_68_0= '#forgebonus' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4514:3: lv_forgebonus_68_0= '#forgebonus'
                    {
                    lv_forgebonus_68_0=(Token)match(input,153,FOLLOW_153_in_ruleMonsterInst210889); 

                            newLeafNode(lv_forgebonus_68_0, grammarAccess.getMonsterInst2Access().getForgebonusForgebonusKeyword_68_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getMonsterInst2Rule());
                    	        }
                           		setWithLastConsumed(current, "forgebonus", true, "#forgebonus");
                    	    

                    }


                    }


                    }
                    break;
                case 70 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4528:6: ( (lv_douse_69_0= '#douse' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4528:6: ( (lv_douse_69_0= '#douse' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4529:1: (lv_douse_69_0= '#douse' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4529:1: (lv_douse_69_0= '#douse' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4530:3: lv_douse_69_0= '#douse'
                    {
                    lv_douse_69_0=(Token)match(input,154,FOLLOW_154_in_ruleMonsterInst210926); 

                            newLeafNode(lv_douse_69_0, grammarAccess.getMonsterInst2Access().getDouseDouseKeyword_69_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getMonsterInst2Rule());
                    	        }
                           		setWithLastConsumed(current, "douse", true, "#douse");
                    	    

                    }


                    }


                    }
                    break;
                case 71 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4544:6: ( (lv_nobadevents_70_0= '#nobadevents' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4544:6: ( (lv_nobadevents_70_0= '#nobadevents' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4545:1: (lv_nobadevents_70_0= '#nobadevents' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4545:1: (lv_nobadevents_70_0= '#nobadevents' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4546:3: lv_nobadevents_70_0= '#nobadevents'
                    {
                    lv_nobadevents_70_0=(Token)match(input,155,FOLLOW_155_in_ruleMonsterInst210963); 

                            newLeafNode(lv_nobadevents_70_0, grammarAccess.getMonsterInst2Access().getNobadeventsNobadeventsKeyword_70_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getMonsterInst2Rule());
                    	        }
                           		setWithLastConsumed(current, "nobadevents", true, "#nobadevents");
                    	    

                    }


                    }


                    }
                    break;
                case 72 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4560:6: ( (lv_incunrest_71_0= '#incunrest' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4560:6: ( (lv_incunrest_71_0= '#incunrest' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4561:1: (lv_incunrest_71_0= '#incunrest' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4561:1: (lv_incunrest_71_0= '#incunrest' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4562:3: lv_incunrest_71_0= '#incunrest'
                    {
                    lv_incunrest_71_0=(Token)match(input,156,FOLLOW_156_in_ruleMonsterInst211000); 

                            newLeafNode(lv_incunrest_71_0, grammarAccess.getMonsterInst2Access().getIncunrestIncunrestKeyword_71_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getMonsterInst2Rule());
                    	        }
                           		setWithLastConsumed(current, "incunrest", true, "#incunrest");
                    	    

                    }


                    }


                    }
                    break;
                case 73 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4576:6: ( (lv_spreaddom_72_0= '#spreaddom' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4576:6: ( (lv_spreaddom_72_0= '#spreaddom' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4577:1: (lv_spreaddom_72_0= '#spreaddom' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4577:1: (lv_spreaddom_72_0= '#spreaddom' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4578:3: lv_spreaddom_72_0= '#spreaddom'
                    {
                    lv_spreaddom_72_0=(Token)match(input,157,FOLLOW_157_in_ruleMonsterInst211037); 

                            newLeafNode(lv_spreaddom_72_0, grammarAccess.getMonsterInst2Access().getSpreaddomSpreaddomKeyword_72_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getMonsterInst2Rule());
                    	        }
                           		setWithLastConsumed(current, "spreaddom", true, "#spreaddom");
                    	    

                    }


                    }


                    }
                    break;
                case 74 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4592:6: ( (lv_leper_73_0= '#leper' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4592:6: ( (lv_leper_73_0= '#leper' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4593:1: (lv_leper_73_0= '#leper' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4593:1: (lv_leper_73_0= '#leper' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4594:3: lv_leper_73_0= '#leper'
                    {
                    lv_leper_73_0=(Token)match(input,158,FOLLOW_158_in_ruleMonsterInst211074); 

                            newLeafNode(lv_leper_73_0, grammarAccess.getMonsterInst2Access().getLeperLeperKeyword_73_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getMonsterInst2Rule());
                    	        }
                           		setWithLastConsumed(current, "leper", true, "#leper");
                    	    

                    }


                    }


                    }
                    break;
                case 75 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4608:6: ( (lv_popkill_74_0= '#popkill' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4608:6: ( (lv_popkill_74_0= '#popkill' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4609:1: (lv_popkill_74_0= '#popkill' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4609:1: (lv_popkill_74_0= '#popkill' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4610:3: lv_popkill_74_0= '#popkill'
                    {
                    lv_popkill_74_0=(Token)match(input,159,FOLLOW_159_in_ruleMonsterInst211111); 

                            newLeafNode(lv_popkill_74_0, grammarAccess.getMonsterInst2Access().getPopkillPopkillKeyword_74_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getMonsterInst2Rule());
                    	        }
                           		setWithLastConsumed(current, "popkill", true, "#popkill");
                    	    

                    }


                    }


                    }
                    break;
                case 76 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4624:6: ( (lv_heretic_75_0= '#heretic' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4624:6: ( (lv_heretic_75_0= '#heretic' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4625:1: (lv_heretic_75_0= '#heretic' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4625:1: (lv_heretic_75_0= '#heretic' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4626:3: lv_heretic_75_0= '#heretic'
                    {
                    lv_heretic_75_0=(Token)match(input,160,FOLLOW_160_in_ruleMonsterInst211148); 

                            newLeafNode(lv_heretic_75_0, grammarAccess.getMonsterInst2Access().getHereticHereticKeyword_75_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getMonsterInst2Rule());
                    	        }
                           		setWithLastConsumed(current, "heretic", true, "#heretic");
                    	    

                    }


                    }


                    }
                    break;
                case 77 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4640:6: ( (lv_itemslots_76_0= '#itemslots' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4640:6: ( (lv_itemslots_76_0= '#itemslots' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4641:1: (lv_itemslots_76_0= '#itemslots' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4641:1: (lv_itemslots_76_0= '#itemslots' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4642:3: lv_itemslots_76_0= '#itemslots'
                    {
                    lv_itemslots_76_0=(Token)match(input,161,FOLLOW_161_in_ruleMonsterInst211185); 

                            newLeafNode(lv_itemslots_76_0, grammarAccess.getMonsterInst2Access().getItemslotsItemslotsKeyword_76_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getMonsterInst2Rule());
                    	        }
                           		setWithLastConsumed(current, "itemslots", true, "#itemslots");
                    	    

                    }


                    }


                    }
                    break;
                case 78 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4656:6: ( (lv_nametype_77_0= '#nametype' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4656:6: ( (lv_nametype_77_0= '#nametype' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4657:1: (lv_nametype_77_0= '#nametype' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4657:1: (lv_nametype_77_0= '#nametype' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4658:3: lv_nametype_77_0= '#nametype'
                    {
                    lv_nametype_77_0=(Token)match(input,162,FOLLOW_162_in_ruleMonsterInst211222); 

                            newLeafNode(lv_nametype_77_0, grammarAccess.getMonsterInst2Access().getNametypeNametypeKeyword_77_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getMonsterInst2Rule());
                    	        }
                           		setWithLastConsumed(current, "nametype", true, "#nametype");
                    	    

                    }


                    }


                    }
                    break;

            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleMonsterInst2"


    // $ANTLR start "entryRuleMonsterInst3"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4679:1: entryRuleMonsterInst3 returns [EObject current=null] : iv_ruleMonsterInst3= ruleMonsterInst3 EOF ;
    public final EObject entryRuleMonsterInst3() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleMonsterInst3 = null;


        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4680:2: (iv_ruleMonsterInst3= ruleMonsterInst3 EOF )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4681:2: iv_ruleMonsterInst3= ruleMonsterInst3 EOF
            {
             newCompositeNode(grammarAccess.getMonsterInst3Rule()); 
            pushFollow(FOLLOW_ruleMonsterInst3_in_entryRuleMonsterInst311271);
            iv_ruleMonsterInst3=ruleMonsterInst3();

            state._fsp--;

             current =iv_ruleMonsterInst3; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleMonsterInst311281); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleMonsterInst3"


    // $ANTLR start "ruleMonsterInst3"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4688:1: ruleMonsterInst3 returns [EObject current=null] : ( ( (lv_magicskill_0_0= '#magicskill' ) ) | ( (lv_custommagic_1_0= '#custommagic' ) ) | ( (lv_magicboost_2_0= '#magicboost' ) ) | ( (lv_gemprod_3_0= '#gemprod' ) ) ) ;
    public final EObject ruleMonsterInst3() throws RecognitionException {
        EObject current = null;

        Token lv_magicskill_0_0=null;
        Token lv_custommagic_1_0=null;
        Token lv_magicboost_2_0=null;
        Token lv_gemprod_3_0=null;

         enterRule(); 
            
        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4691:28: ( ( ( (lv_magicskill_0_0= '#magicskill' ) ) | ( (lv_custommagic_1_0= '#custommagic' ) ) | ( (lv_magicboost_2_0= '#magicboost' ) ) | ( (lv_gemprod_3_0= '#gemprod' ) ) ) )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4692:1: ( ( (lv_magicskill_0_0= '#magicskill' ) ) | ( (lv_custommagic_1_0= '#custommagic' ) ) | ( (lv_magicboost_2_0= '#magicboost' ) ) | ( (lv_gemprod_3_0= '#gemprod' ) ) )
            {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4692:1: ( ( (lv_magicskill_0_0= '#magicskill' ) ) | ( (lv_custommagic_1_0= '#custommagic' ) ) | ( (lv_magicboost_2_0= '#magicboost' ) ) | ( (lv_gemprod_3_0= '#gemprod' ) ) )
            int alt51=4;
            switch ( input.LA(1) ) {
            case 163:
                {
                alt51=1;
                }
                break;
            case 164:
                {
                alt51=2;
                }
                break;
            case 165:
                {
                alt51=3;
                }
                break;
            case 166:
                {
                alt51=4;
                }
                break;
            default:
                NoViableAltException nvae =
                    new NoViableAltException("", 51, 0, input);

                throw nvae;
            }

            switch (alt51) {
                case 1 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4692:2: ( (lv_magicskill_0_0= '#magicskill' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4692:2: ( (lv_magicskill_0_0= '#magicskill' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4693:1: (lv_magicskill_0_0= '#magicskill' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4693:1: (lv_magicskill_0_0= '#magicskill' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4694:3: lv_magicskill_0_0= '#magicskill'
                    {
                    lv_magicskill_0_0=(Token)match(input,163,FOLLOW_163_in_ruleMonsterInst311324); 

                            newLeafNode(lv_magicskill_0_0, grammarAccess.getMonsterInst3Access().getMagicskillMagicskillKeyword_0_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getMonsterInst3Rule());
                    	        }
                           		setWithLastConsumed(current, "magicskill", true, "#magicskill");
                    	    

                    }


                    }


                    }
                    break;
                case 2 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4708:6: ( (lv_custommagic_1_0= '#custommagic' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4708:6: ( (lv_custommagic_1_0= '#custommagic' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4709:1: (lv_custommagic_1_0= '#custommagic' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4709:1: (lv_custommagic_1_0= '#custommagic' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4710:3: lv_custommagic_1_0= '#custommagic'
                    {
                    lv_custommagic_1_0=(Token)match(input,164,FOLLOW_164_in_ruleMonsterInst311361); 

                            newLeafNode(lv_custommagic_1_0, grammarAccess.getMonsterInst3Access().getCustommagicCustommagicKeyword_1_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getMonsterInst3Rule());
                    	        }
                           		setWithLastConsumed(current, "custommagic", true, "#custommagic");
                    	    

                    }


                    }


                    }
                    break;
                case 3 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4724:6: ( (lv_magicboost_2_0= '#magicboost' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4724:6: ( (lv_magicboost_2_0= '#magicboost' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4725:1: (lv_magicboost_2_0= '#magicboost' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4725:1: (lv_magicboost_2_0= '#magicboost' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4726:3: lv_magicboost_2_0= '#magicboost'
                    {
                    lv_magicboost_2_0=(Token)match(input,165,FOLLOW_165_in_ruleMonsterInst311398); 

                            newLeafNode(lv_magicboost_2_0, grammarAccess.getMonsterInst3Access().getMagicboostMagicboostKeyword_2_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getMonsterInst3Rule());
                    	        }
                           		setWithLastConsumed(current, "magicboost", true, "#magicboost");
                    	    

                    }


                    }


                    }
                    break;
                case 4 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4740:6: ( (lv_gemprod_3_0= '#gemprod' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4740:6: ( (lv_gemprod_3_0= '#gemprod' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4741:1: (lv_gemprod_3_0= '#gemprod' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4741:1: (lv_gemprod_3_0= '#gemprod' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4742:3: lv_gemprod_3_0= '#gemprod'
                    {
                    lv_gemprod_3_0=(Token)match(input,166,FOLLOW_166_in_ruleMonsterInst311435); 

                            newLeafNode(lv_gemprod_3_0, grammarAccess.getMonsterInst3Access().getGemprodGemprodKeyword_3_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getMonsterInst3Rule());
                    	        }
                           		setWithLastConsumed(current, "gemprod", true, "#gemprod");
                    	    

                    }


                    }


                    }
                    break;

            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleMonsterInst3"


    // $ANTLR start "entryRuleMonsterInst4"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4763:1: entryRuleMonsterInst4 returns [EObject current=null] : iv_ruleMonsterInst4= ruleMonsterInst4 EOF ;
    public final EObject entryRuleMonsterInst4() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleMonsterInst4 = null;


        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4764:2: (iv_ruleMonsterInst4= ruleMonsterInst4 EOF )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4765:2: iv_ruleMonsterInst4= ruleMonsterInst4 EOF
            {
             newCompositeNode(grammarAccess.getMonsterInst4Rule()); 
            pushFollow(FOLLOW_ruleMonsterInst4_in_entryRuleMonsterInst411484);
            iv_ruleMonsterInst4=ruleMonsterInst4();

            state._fsp--;

             current =iv_ruleMonsterInst4; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleMonsterInst411494); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleMonsterInst4"


    // $ANTLR start "ruleMonsterInst4"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4772:1: ruleMonsterInst4 returns [EObject current=null] : ( ( (lv_clear_0_0= '#clear' ) ) | ( (lv_clearweapons_1_0= '#clearweapons' ) ) | ( (lv_cleararmor_2_0= '#cleararmor' ) ) | ( (lv_clearmagic_3_0= '#clearmagic' ) ) | ( (lv_clearspec_4_0= '#clearspec' ) ) | ( (lv_female_5_0= '#female' ) ) | ( (lv_mounted_6_0= '#mounted' ) ) | ( (lv_holy_7_0= '#holy' ) ) | ( (lv_animal_8_0= '#animal' ) ) | ( (lv_undead_9_0= '#undead' ) ) | ( (lv_demon_10_0= '#demon' ) ) | ( (lv_magicbeing_11_0= '#magicbeing' ) ) | ( (lv_stonebeing_12_0= '#stonebeing' ) ) | ( (lv_inanimate_13_0= '#inanimate' ) ) | ( (lv_coldblood_14_0= '#coldblood' ) ) | ( (lv_coldblood_15_0= '#coldblooded' ) ) | ( (lv_immortal_16_0= '#immortal' ) ) | ( (lv_blind_17_0= '#blind' ) ) | ( (lv_unique_18_0= '#unique' ) ) | ( (lv_immobile_19_0= '#immobile' ) ) | ( (lv_aquatic_20_0= '#aquatic' ) ) | ( (lv_amphibian_21_0= '#amphibian' ) ) | ( (lv_pooramphibian_22_0= '#pooramphibian' ) ) | ( (lv_flying_23_0= '#flying' ) ) | ( (lv_stormimmune_24_0= '#stormimmune' ) ) | ( (lv_sailing_25_0= '#sailing' ) ) | ( (lv_forestsurvival_26_0= '#forestsurvival' ) ) | ( (lv_mountainsurvival_27_0= '#mountainsurvival' ) ) | ( (lv_swampsurvival_28_0= '#swampsurvival' ) ) | ( (lv_wastesurvival_29_0= '#wastesurvival' ) ) | ( (lv_illusion_30_0= '#illusion' ) ) | ( (lv_spy_31_0= '#spy' ) ) | ( (lv_assassin_32_0= '#assassin' ) ) | ( (lv_heal_33_0= '#heal' ) ) | ( (lv_noheal_34_0= '#noheal' ) ) | ( (lv_neednoteat_35_0= '#neednoteat' ) ) | ( (lv_ethereal_36_0= '#ethereal' ) ) | ( (lv_trample_37_0= '#trample' ) ) | ( (lv_entangle_38_0= '#entangle' ) ) | ( (lv_eyeloss_39_0= '#eyeloss' ) ) | ( (lv_horrormark_40_0= '#horrormark' ) ) | ( (lv_poisonarmor_41_0= '#poisonarmor' ) ) | ( (lv_inquisitor_42_0= '#inquisitor' ) ) | ( (lv_noitem_43_0= '#noitem' ) ) | ( (lv_drainimmune_44_0= '#drainimmune' ) ) | ( (lv_noleader_45_0= '#noleader' ) ) | ( (lv_poorleader_46_0= '#poorleader' ) ) | ( (lv_okleader_47_0= '#okleader' ) ) | ( (lv_goodleader_48_0= '#goodleader' ) ) | ( (lv_expertleader_49_0= '#expertleader' ) ) | ( (lv_superiorleader_50_0= '#superiorleader' ) ) | ( (lv_nomagicleader_51_0= '#nomagicleader' ) ) | ( (lv_poormagicleader_52_0= '#poormagicleader' ) ) | ( (lv_okmagicleader_53_0= '#okmagicleader' ) ) | ( (lv_goodmagicleader_54_0= '#goodmagicleader' ) ) | ( (lv_expertmagicleader_55_0= '#expertmagicleader' ) ) | ( (lv_superiormagicleader_56_0= '#superiormagicleader' ) ) | ( (lv_noundeadleader_57_0= '#noundeadleader' ) ) | ( (lv_poorundeadleader_58_0= '#poorundeadleader' ) ) | ( (lv_okundeadleader_59_0= '#okundeadleader' ) ) | ( (lv_goodundeadleader_60_0= '#goodundeadleader' ) ) | ( (lv_expertundeadleader_61_0= '#expertundeadleader' ) ) | ( (lv_superiorundeadleader_62_0= '#superiorundeadleader' ) ) ) ;
    public final EObject ruleMonsterInst4() throws RecognitionException {
        EObject current = null;

        Token lv_clear_0_0=null;
        Token lv_clearweapons_1_0=null;
        Token lv_cleararmor_2_0=null;
        Token lv_clearmagic_3_0=null;
        Token lv_clearspec_4_0=null;
        Token lv_female_5_0=null;
        Token lv_mounted_6_0=null;
        Token lv_holy_7_0=null;
        Token lv_animal_8_0=null;
        Token lv_undead_9_0=null;
        Token lv_demon_10_0=null;
        Token lv_magicbeing_11_0=null;
        Token lv_stonebeing_12_0=null;
        Token lv_inanimate_13_0=null;
        Token lv_coldblood_14_0=null;
        Token lv_coldblood_15_0=null;
        Token lv_immortal_16_0=null;
        Token lv_blind_17_0=null;
        Token lv_unique_18_0=null;
        Token lv_immobile_19_0=null;
        Token lv_aquatic_20_0=null;
        Token lv_amphibian_21_0=null;
        Token lv_pooramphibian_22_0=null;
        Token lv_flying_23_0=null;
        Token lv_stormimmune_24_0=null;
        Token lv_sailing_25_0=null;
        Token lv_forestsurvival_26_0=null;
        Token lv_mountainsurvival_27_0=null;
        Token lv_swampsurvival_28_0=null;
        Token lv_wastesurvival_29_0=null;
        Token lv_illusion_30_0=null;
        Token lv_spy_31_0=null;
        Token lv_assassin_32_0=null;
        Token lv_heal_33_0=null;
        Token lv_noheal_34_0=null;
        Token lv_neednoteat_35_0=null;
        Token lv_ethereal_36_0=null;
        Token lv_trample_37_0=null;
        Token lv_entangle_38_0=null;
        Token lv_eyeloss_39_0=null;
        Token lv_horrormark_40_0=null;
        Token lv_poisonarmor_41_0=null;
        Token lv_inquisitor_42_0=null;
        Token lv_noitem_43_0=null;
        Token lv_drainimmune_44_0=null;
        Token lv_noleader_45_0=null;
        Token lv_poorleader_46_0=null;
        Token lv_okleader_47_0=null;
        Token lv_goodleader_48_0=null;
        Token lv_expertleader_49_0=null;
        Token lv_superiorleader_50_0=null;
        Token lv_nomagicleader_51_0=null;
        Token lv_poormagicleader_52_0=null;
        Token lv_okmagicleader_53_0=null;
        Token lv_goodmagicleader_54_0=null;
        Token lv_expertmagicleader_55_0=null;
        Token lv_superiormagicleader_56_0=null;
        Token lv_noundeadleader_57_0=null;
        Token lv_poorundeadleader_58_0=null;
        Token lv_okundeadleader_59_0=null;
        Token lv_goodundeadleader_60_0=null;
        Token lv_expertundeadleader_61_0=null;
        Token lv_superiorundeadleader_62_0=null;

         enterRule(); 
            
        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4775:28: ( ( ( (lv_clear_0_0= '#clear' ) ) | ( (lv_clearweapons_1_0= '#clearweapons' ) ) | ( (lv_cleararmor_2_0= '#cleararmor' ) ) | ( (lv_clearmagic_3_0= '#clearmagic' ) ) | ( (lv_clearspec_4_0= '#clearspec' ) ) | ( (lv_female_5_0= '#female' ) ) | ( (lv_mounted_6_0= '#mounted' ) ) | ( (lv_holy_7_0= '#holy' ) ) | ( (lv_animal_8_0= '#animal' ) ) | ( (lv_undead_9_0= '#undead' ) ) | ( (lv_demon_10_0= '#demon' ) ) | ( (lv_magicbeing_11_0= '#magicbeing' ) ) | ( (lv_stonebeing_12_0= '#stonebeing' ) ) | ( (lv_inanimate_13_0= '#inanimate' ) ) | ( (lv_coldblood_14_0= '#coldblood' ) ) | ( (lv_coldblood_15_0= '#coldblooded' ) ) | ( (lv_immortal_16_0= '#immortal' ) ) | ( (lv_blind_17_0= '#blind' ) ) | ( (lv_unique_18_0= '#unique' ) ) | ( (lv_immobile_19_0= '#immobile' ) ) | ( (lv_aquatic_20_0= '#aquatic' ) ) | ( (lv_amphibian_21_0= '#amphibian' ) ) | ( (lv_pooramphibian_22_0= '#pooramphibian' ) ) | ( (lv_flying_23_0= '#flying' ) ) | ( (lv_stormimmune_24_0= '#stormimmune' ) ) | ( (lv_sailing_25_0= '#sailing' ) ) | ( (lv_forestsurvival_26_0= '#forestsurvival' ) ) | ( (lv_mountainsurvival_27_0= '#mountainsurvival' ) ) | ( (lv_swampsurvival_28_0= '#swampsurvival' ) ) | ( (lv_wastesurvival_29_0= '#wastesurvival' ) ) | ( (lv_illusion_30_0= '#illusion' ) ) | ( (lv_spy_31_0= '#spy' ) ) | ( (lv_assassin_32_0= '#assassin' ) ) | ( (lv_heal_33_0= '#heal' ) ) | ( (lv_noheal_34_0= '#noheal' ) ) | ( (lv_neednoteat_35_0= '#neednoteat' ) ) | ( (lv_ethereal_36_0= '#ethereal' ) ) | ( (lv_trample_37_0= '#trample' ) ) | ( (lv_entangle_38_0= '#entangle' ) ) | ( (lv_eyeloss_39_0= '#eyeloss' ) ) | ( (lv_horrormark_40_0= '#horrormark' ) ) | ( (lv_poisonarmor_41_0= '#poisonarmor' ) ) | ( (lv_inquisitor_42_0= '#inquisitor' ) ) | ( (lv_noitem_43_0= '#noitem' ) ) | ( (lv_drainimmune_44_0= '#drainimmune' ) ) | ( (lv_noleader_45_0= '#noleader' ) ) | ( (lv_poorleader_46_0= '#poorleader' ) ) | ( (lv_okleader_47_0= '#okleader' ) ) | ( (lv_goodleader_48_0= '#goodleader' ) ) | ( (lv_expertleader_49_0= '#expertleader' ) ) | ( (lv_superiorleader_50_0= '#superiorleader' ) ) | ( (lv_nomagicleader_51_0= '#nomagicleader' ) ) | ( (lv_poormagicleader_52_0= '#poormagicleader' ) ) | ( (lv_okmagicleader_53_0= '#okmagicleader' ) ) | ( (lv_goodmagicleader_54_0= '#goodmagicleader' ) ) | ( (lv_expertmagicleader_55_0= '#expertmagicleader' ) ) | ( (lv_superiormagicleader_56_0= '#superiormagicleader' ) ) | ( (lv_noundeadleader_57_0= '#noundeadleader' ) ) | ( (lv_poorundeadleader_58_0= '#poorundeadleader' ) ) | ( (lv_okundeadleader_59_0= '#okundeadleader' ) ) | ( (lv_goodundeadleader_60_0= '#goodundeadleader' ) ) | ( (lv_expertundeadleader_61_0= '#expertundeadleader' ) ) | ( (lv_superiorundeadleader_62_0= '#superiorundeadleader' ) ) ) )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4776:1: ( ( (lv_clear_0_0= '#clear' ) ) | ( (lv_clearweapons_1_0= '#clearweapons' ) ) | ( (lv_cleararmor_2_0= '#cleararmor' ) ) | ( (lv_clearmagic_3_0= '#clearmagic' ) ) | ( (lv_clearspec_4_0= '#clearspec' ) ) | ( (lv_female_5_0= '#female' ) ) | ( (lv_mounted_6_0= '#mounted' ) ) | ( (lv_holy_7_0= '#holy' ) ) | ( (lv_animal_8_0= '#animal' ) ) | ( (lv_undead_9_0= '#undead' ) ) | ( (lv_demon_10_0= '#demon' ) ) | ( (lv_magicbeing_11_0= '#magicbeing' ) ) | ( (lv_stonebeing_12_0= '#stonebeing' ) ) | ( (lv_inanimate_13_0= '#inanimate' ) ) | ( (lv_coldblood_14_0= '#coldblood' ) ) | ( (lv_coldblood_15_0= '#coldblooded' ) ) | ( (lv_immortal_16_0= '#immortal' ) ) | ( (lv_blind_17_0= '#blind' ) ) | ( (lv_unique_18_0= '#unique' ) ) | ( (lv_immobile_19_0= '#immobile' ) ) | ( (lv_aquatic_20_0= '#aquatic' ) ) | ( (lv_amphibian_21_0= '#amphibian' ) ) | ( (lv_pooramphibian_22_0= '#pooramphibian' ) ) | ( (lv_flying_23_0= '#flying' ) ) | ( (lv_stormimmune_24_0= '#stormimmune' ) ) | ( (lv_sailing_25_0= '#sailing' ) ) | ( (lv_forestsurvival_26_0= '#forestsurvival' ) ) | ( (lv_mountainsurvival_27_0= '#mountainsurvival' ) ) | ( (lv_swampsurvival_28_0= '#swampsurvival' ) ) | ( (lv_wastesurvival_29_0= '#wastesurvival' ) ) | ( (lv_illusion_30_0= '#illusion' ) ) | ( (lv_spy_31_0= '#spy' ) ) | ( (lv_assassin_32_0= '#assassin' ) ) | ( (lv_heal_33_0= '#heal' ) ) | ( (lv_noheal_34_0= '#noheal' ) ) | ( (lv_neednoteat_35_0= '#neednoteat' ) ) | ( (lv_ethereal_36_0= '#ethereal' ) ) | ( (lv_trample_37_0= '#trample' ) ) | ( (lv_entangle_38_0= '#entangle' ) ) | ( (lv_eyeloss_39_0= '#eyeloss' ) ) | ( (lv_horrormark_40_0= '#horrormark' ) ) | ( (lv_poisonarmor_41_0= '#poisonarmor' ) ) | ( (lv_inquisitor_42_0= '#inquisitor' ) ) | ( (lv_noitem_43_0= '#noitem' ) ) | ( (lv_drainimmune_44_0= '#drainimmune' ) ) | ( (lv_noleader_45_0= '#noleader' ) ) | ( (lv_poorleader_46_0= '#poorleader' ) ) | ( (lv_okleader_47_0= '#okleader' ) ) | ( (lv_goodleader_48_0= '#goodleader' ) ) | ( (lv_expertleader_49_0= '#expertleader' ) ) | ( (lv_superiorleader_50_0= '#superiorleader' ) ) | ( (lv_nomagicleader_51_0= '#nomagicleader' ) ) | ( (lv_poormagicleader_52_0= '#poormagicleader' ) ) | ( (lv_okmagicleader_53_0= '#okmagicleader' ) ) | ( (lv_goodmagicleader_54_0= '#goodmagicleader' ) ) | ( (lv_expertmagicleader_55_0= '#expertmagicleader' ) ) | ( (lv_superiormagicleader_56_0= '#superiormagicleader' ) ) | ( (lv_noundeadleader_57_0= '#noundeadleader' ) ) | ( (lv_poorundeadleader_58_0= '#poorundeadleader' ) ) | ( (lv_okundeadleader_59_0= '#okundeadleader' ) ) | ( (lv_goodundeadleader_60_0= '#goodundeadleader' ) ) | ( (lv_expertundeadleader_61_0= '#expertundeadleader' ) ) | ( (lv_superiorundeadleader_62_0= '#superiorundeadleader' ) ) )
            {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4776:1: ( ( (lv_clear_0_0= '#clear' ) ) | ( (lv_clearweapons_1_0= '#clearweapons' ) ) | ( (lv_cleararmor_2_0= '#cleararmor' ) ) | ( (lv_clearmagic_3_0= '#clearmagic' ) ) | ( (lv_clearspec_4_0= '#clearspec' ) ) | ( (lv_female_5_0= '#female' ) ) | ( (lv_mounted_6_0= '#mounted' ) ) | ( (lv_holy_7_0= '#holy' ) ) | ( (lv_animal_8_0= '#animal' ) ) | ( (lv_undead_9_0= '#undead' ) ) | ( (lv_demon_10_0= '#demon' ) ) | ( (lv_magicbeing_11_0= '#magicbeing' ) ) | ( (lv_stonebeing_12_0= '#stonebeing' ) ) | ( (lv_inanimate_13_0= '#inanimate' ) ) | ( (lv_coldblood_14_0= '#coldblood' ) ) | ( (lv_coldblood_15_0= '#coldblooded' ) ) | ( (lv_immortal_16_0= '#immortal' ) ) | ( (lv_blind_17_0= '#blind' ) ) | ( (lv_unique_18_0= '#unique' ) ) | ( (lv_immobile_19_0= '#immobile' ) ) | ( (lv_aquatic_20_0= '#aquatic' ) ) | ( (lv_amphibian_21_0= '#amphibian' ) ) | ( (lv_pooramphibian_22_0= '#pooramphibian' ) ) | ( (lv_flying_23_0= '#flying' ) ) | ( (lv_stormimmune_24_0= '#stormimmune' ) ) | ( (lv_sailing_25_0= '#sailing' ) ) | ( (lv_forestsurvival_26_0= '#forestsurvival' ) ) | ( (lv_mountainsurvival_27_0= '#mountainsurvival' ) ) | ( (lv_swampsurvival_28_0= '#swampsurvival' ) ) | ( (lv_wastesurvival_29_0= '#wastesurvival' ) ) | ( (lv_illusion_30_0= '#illusion' ) ) | ( (lv_spy_31_0= '#spy' ) ) | ( (lv_assassin_32_0= '#assassin' ) ) | ( (lv_heal_33_0= '#heal' ) ) | ( (lv_noheal_34_0= '#noheal' ) ) | ( (lv_neednoteat_35_0= '#neednoteat' ) ) | ( (lv_ethereal_36_0= '#ethereal' ) ) | ( (lv_trample_37_0= '#trample' ) ) | ( (lv_entangle_38_0= '#entangle' ) ) | ( (lv_eyeloss_39_0= '#eyeloss' ) ) | ( (lv_horrormark_40_0= '#horrormark' ) ) | ( (lv_poisonarmor_41_0= '#poisonarmor' ) ) | ( (lv_inquisitor_42_0= '#inquisitor' ) ) | ( (lv_noitem_43_0= '#noitem' ) ) | ( (lv_drainimmune_44_0= '#drainimmune' ) ) | ( (lv_noleader_45_0= '#noleader' ) ) | ( (lv_poorleader_46_0= '#poorleader' ) ) | ( (lv_okleader_47_0= '#okleader' ) ) | ( (lv_goodleader_48_0= '#goodleader' ) ) | ( (lv_expertleader_49_0= '#expertleader' ) ) | ( (lv_superiorleader_50_0= '#superiorleader' ) ) | ( (lv_nomagicleader_51_0= '#nomagicleader' ) ) | ( (lv_poormagicleader_52_0= '#poormagicleader' ) ) | ( (lv_okmagicleader_53_0= '#okmagicleader' ) ) | ( (lv_goodmagicleader_54_0= '#goodmagicleader' ) ) | ( (lv_expertmagicleader_55_0= '#expertmagicleader' ) ) | ( (lv_superiormagicleader_56_0= '#superiormagicleader' ) ) | ( (lv_noundeadleader_57_0= '#noundeadleader' ) ) | ( (lv_poorundeadleader_58_0= '#poorundeadleader' ) ) | ( (lv_okundeadleader_59_0= '#okundeadleader' ) ) | ( (lv_goodundeadleader_60_0= '#goodundeadleader' ) ) | ( (lv_expertundeadleader_61_0= '#expertundeadleader' ) ) | ( (lv_superiorundeadleader_62_0= '#superiorundeadleader' ) ) )
            int alt52=63;
            switch ( input.LA(1) ) {
            case 167:
                {
                alt52=1;
                }
                break;
            case 168:
                {
                alt52=2;
                }
                break;
            case 169:
                {
                alt52=3;
                }
                break;
            case 170:
                {
                alt52=4;
                }
                break;
            case 171:
                {
                alt52=5;
                }
                break;
            case 172:
                {
                alt52=6;
                }
                break;
            case 173:
                {
                alt52=7;
                }
                break;
            case 174:
                {
                alt52=8;
                }
                break;
            case 175:
                {
                alt52=9;
                }
                break;
            case 176:
                {
                alt52=10;
                }
                break;
            case 177:
                {
                alt52=11;
                }
                break;
            case 178:
                {
                alt52=12;
                }
                break;
            case 179:
                {
                alt52=13;
                }
                break;
            case 180:
                {
                alt52=14;
                }
                break;
            case 181:
                {
                alt52=15;
                }
                break;
            case 182:
                {
                alt52=16;
                }
                break;
            case 183:
                {
                alt52=17;
                }
                break;
            case 184:
                {
                alt52=18;
                }
                break;
            case 185:
                {
                alt52=19;
                }
                break;
            case 186:
                {
                alt52=20;
                }
                break;
            case 187:
                {
                alt52=21;
                }
                break;
            case 188:
                {
                alt52=22;
                }
                break;
            case 189:
                {
                alt52=23;
                }
                break;
            case 190:
                {
                alt52=24;
                }
                break;
            case 191:
                {
                alt52=25;
                }
                break;
            case 192:
                {
                alt52=26;
                }
                break;
            case 193:
                {
                alt52=27;
                }
                break;
            case 194:
                {
                alt52=28;
                }
                break;
            case 195:
                {
                alt52=29;
                }
                break;
            case 196:
                {
                alt52=30;
                }
                break;
            case 197:
                {
                alt52=31;
                }
                break;
            case 198:
                {
                alt52=32;
                }
                break;
            case 199:
                {
                alt52=33;
                }
                break;
            case 200:
                {
                alt52=34;
                }
                break;
            case 201:
                {
                alt52=35;
                }
                break;
            case 202:
                {
                alt52=36;
                }
                break;
            case 203:
                {
                alt52=37;
                }
                break;
            case 204:
                {
                alt52=38;
                }
                break;
            case 205:
                {
                alt52=39;
                }
                break;
            case 206:
                {
                alt52=40;
                }
                break;
            case 207:
                {
                alt52=41;
                }
                break;
            case 208:
                {
                alt52=42;
                }
                break;
            case 209:
                {
                alt52=43;
                }
                break;
            case 210:
                {
                alt52=44;
                }
                break;
            case 211:
                {
                alt52=45;
                }
                break;
            case 212:
                {
                alt52=46;
                }
                break;
            case 213:
                {
                alt52=47;
                }
                break;
            case 214:
                {
                alt52=48;
                }
                break;
            case 215:
                {
                alt52=49;
                }
                break;
            case 216:
                {
                alt52=50;
                }
                break;
            case 217:
                {
                alt52=51;
                }
                break;
            case 218:
                {
                alt52=52;
                }
                break;
            case 219:
                {
                alt52=53;
                }
                break;
            case 220:
                {
                alt52=54;
                }
                break;
            case 221:
                {
                alt52=55;
                }
                break;
            case 222:
                {
                alt52=56;
                }
                break;
            case 223:
                {
                alt52=57;
                }
                break;
            case 224:
                {
                alt52=58;
                }
                break;
            case 225:
                {
                alt52=59;
                }
                break;
            case 226:
                {
                alt52=60;
                }
                break;
            case 227:
                {
                alt52=61;
                }
                break;
            case 228:
                {
                alt52=62;
                }
                break;
            case 229:
                {
                alt52=63;
                }
                break;
            default:
                NoViableAltException nvae =
                    new NoViableAltException("", 52, 0, input);

                throw nvae;
            }

            switch (alt52) {
                case 1 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4776:2: ( (lv_clear_0_0= '#clear' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4776:2: ( (lv_clear_0_0= '#clear' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4777:1: (lv_clear_0_0= '#clear' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4777:1: (lv_clear_0_0= '#clear' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4778:3: lv_clear_0_0= '#clear'
                    {
                    lv_clear_0_0=(Token)match(input,167,FOLLOW_167_in_ruleMonsterInst411537); 

                            newLeafNode(lv_clear_0_0, grammarAccess.getMonsterInst4Access().getClearClearKeyword_0_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getMonsterInst4Rule());
                    	        }
                           		setWithLastConsumed(current, "clear", true, "#clear");
                    	    

                    }


                    }


                    }
                    break;
                case 2 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4792:6: ( (lv_clearweapons_1_0= '#clearweapons' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4792:6: ( (lv_clearweapons_1_0= '#clearweapons' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4793:1: (lv_clearweapons_1_0= '#clearweapons' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4793:1: (lv_clearweapons_1_0= '#clearweapons' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4794:3: lv_clearweapons_1_0= '#clearweapons'
                    {
                    lv_clearweapons_1_0=(Token)match(input,168,FOLLOW_168_in_ruleMonsterInst411574); 

                            newLeafNode(lv_clearweapons_1_0, grammarAccess.getMonsterInst4Access().getClearweaponsClearweaponsKeyword_1_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getMonsterInst4Rule());
                    	        }
                           		setWithLastConsumed(current, "clearweapons", true, "#clearweapons");
                    	    

                    }


                    }


                    }
                    break;
                case 3 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4808:6: ( (lv_cleararmor_2_0= '#cleararmor' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4808:6: ( (lv_cleararmor_2_0= '#cleararmor' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4809:1: (lv_cleararmor_2_0= '#cleararmor' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4809:1: (lv_cleararmor_2_0= '#cleararmor' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4810:3: lv_cleararmor_2_0= '#cleararmor'
                    {
                    lv_cleararmor_2_0=(Token)match(input,169,FOLLOW_169_in_ruleMonsterInst411611); 

                            newLeafNode(lv_cleararmor_2_0, grammarAccess.getMonsterInst4Access().getCleararmorCleararmorKeyword_2_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getMonsterInst4Rule());
                    	        }
                           		setWithLastConsumed(current, "cleararmor", true, "#cleararmor");
                    	    

                    }


                    }


                    }
                    break;
                case 4 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4824:6: ( (lv_clearmagic_3_0= '#clearmagic' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4824:6: ( (lv_clearmagic_3_0= '#clearmagic' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4825:1: (lv_clearmagic_3_0= '#clearmagic' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4825:1: (lv_clearmagic_3_0= '#clearmagic' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4826:3: lv_clearmagic_3_0= '#clearmagic'
                    {
                    lv_clearmagic_3_0=(Token)match(input,170,FOLLOW_170_in_ruleMonsterInst411648); 

                            newLeafNode(lv_clearmagic_3_0, grammarAccess.getMonsterInst4Access().getClearmagicClearmagicKeyword_3_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getMonsterInst4Rule());
                    	        }
                           		setWithLastConsumed(current, "clearmagic", true, "#clearmagic");
                    	    

                    }


                    }


                    }
                    break;
                case 5 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4840:6: ( (lv_clearspec_4_0= '#clearspec' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4840:6: ( (lv_clearspec_4_0= '#clearspec' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4841:1: (lv_clearspec_4_0= '#clearspec' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4841:1: (lv_clearspec_4_0= '#clearspec' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4842:3: lv_clearspec_4_0= '#clearspec'
                    {
                    lv_clearspec_4_0=(Token)match(input,171,FOLLOW_171_in_ruleMonsterInst411685); 

                            newLeafNode(lv_clearspec_4_0, grammarAccess.getMonsterInst4Access().getClearspecClearspecKeyword_4_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getMonsterInst4Rule());
                    	        }
                           		setWithLastConsumed(current, "clearspec", true, "#clearspec");
                    	    

                    }


                    }


                    }
                    break;
                case 6 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4856:6: ( (lv_female_5_0= '#female' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4856:6: ( (lv_female_5_0= '#female' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4857:1: (lv_female_5_0= '#female' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4857:1: (lv_female_5_0= '#female' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4858:3: lv_female_5_0= '#female'
                    {
                    lv_female_5_0=(Token)match(input,172,FOLLOW_172_in_ruleMonsterInst411722); 

                            newLeafNode(lv_female_5_0, grammarAccess.getMonsterInst4Access().getFemaleFemaleKeyword_5_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getMonsterInst4Rule());
                    	        }
                           		setWithLastConsumed(current, "female", true, "#female");
                    	    

                    }


                    }


                    }
                    break;
                case 7 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4872:6: ( (lv_mounted_6_0= '#mounted' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4872:6: ( (lv_mounted_6_0= '#mounted' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4873:1: (lv_mounted_6_0= '#mounted' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4873:1: (lv_mounted_6_0= '#mounted' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4874:3: lv_mounted_6_0= '#mounted'
                    {
                    lv_mounted_6_0=(Token)match(input,173,FOLLOW_173_in_ruleMonsterInst411759); 

                            newLeafNode(lv_mounted_6_0, grammarAccess.getMonsterInst4Access().getMountedMountedKeyword_6_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getMonsterInst4Rule());
                    	        }
                           		setWithLastConsumed(current, "mounted", true, "#mounted");
                    	    

                    }


                    }


                    }
                    break;
                case 8 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4888:6: ( (lv_holy_7_0= '#holy' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4888:6: ( (lv_holy_7_0= '#holy' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4889:1: (lv_holy_7_0= '#holy' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4889:1: (lv_holy_7_0= '#holy' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4890:3: lv_holy_7_0= '#holy'
                    {
                    lv_holy_7_0=(Token)match(input,174,FOLLOW_174_in_ruleMonsterInst411796); 

                            newLeafNode(lv_holy_7_0, grammarAccess.getMonsterInst4Access().getHolyHolyKeyword_7_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getMonsterInst4Rule());
                    	        }
                           		setWithLastConsumed(current, "holy", true, "#holy");
                    	    

                    }


                    }


                    }
                    break;
                case 9 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4904:6: ( (lv_animal_8_0= '#animal' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4904:6: ( (lv_animal_8_0= '#animal' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4905:1: (lv_animal_8_0= '#animal' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4905:1: (lv_animal_8_0= '#animal' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4906:3: lv_animal_8_0= '#animal'
                    {
                    lv_animal_8_0=(Token)match(input,175,FOLLOW_175_in_ruleMonsterInst411833); 

                            newLeafNode(lv_animal_8_0, grammarAccess.getMonsterInst4Access().getAnimalAnimalKeyword_8_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getMonsterInst4Rule());
                    	        }
                           		setWithLastConsumed(current, "animal", true, "#animal");
                    	    

                    }


                    }


                    }
                    break;
                case 10 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4920:6: ( (lv_undead_9_0= '#undead' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4920:6: ( (lv_undead_9_0= '#undead' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4921:1: (lv_undead_9_0= '#undead' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4921:1: (lv_undead_9_0= '#undead' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4922:3: lv_undead_9_0= '#undead'
                    {
                    lv_undead_9_0=(Token)match(input,176,FOLLOW_176_in_ruleMonsterInst411870); 

                            newLeafNode(lv_undead_9_0, grammarAccess.getMonsterInst4Access().getUndeadUndeadKeyword_9_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getMonsterInst4Rule());
                    	        }
                           		setWithLastConsumed(current, "undead", true, "#undead");
                    	    

                    }


                    }


                    }
                    break;
                case 11 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4936:6: ( (lv_demon_10_0= '#demon' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4936:6: ( (lv_demon_10_0= '#demon' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4937:1: (lv_demon_10_0= '#demon' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4937:1: (lv_demon_10_0= '#demon' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4938:3: lv_demon_10_0= '#demon'
                    {
                    lv_demon_10_0=(Token)match(input,177,FOLLOW_177_in_ruleMonsterInst411907); 

                            newLeafNode(lv_demon_10_0, grammarAccess.getMonsterInst4Access().getDemonDemonKeyword_10_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getMonsterInst4Rule());
                    	        }
                           		setWithLastConsumed(current, "demon", true, "#demon");
                    	    

                    }


                    }


                    }
                    break;
                case 12 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4952:6: ( (lv_magicbeing_11_0= '#magicbeing' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4952:6: ( (lv_magicbeing_11_0= '#magicbeing' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4953:1: (lv_magicbeing_11_0= '#magicbeing' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4953:1: (lv_magicbeing_11_0= '#magicbeing' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4954:3: lv_magicbeing_11_0= '#magicbeing'
                    {
                    lv_magicbeing_11_0=(Token)match(input,178,FOLLOW_178_in_ruleMonsterInst411944); 

                            newLeafNode(lv_magicbeing_11_0, grammarAccess.getMonsterInst4Access().getMagicbeingMagicbeingKeyword_11_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getMonsterInst4Rule());
                    	        }
                           		setWithLastConsumed(current, "magicbeing", true, "#magicbeing");
                    	    

                    }


                    }


                    }
                    break;
                case 13 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4968:6: ( (lv_stonebeing_12_0= '#stonebeing' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4968:6: ( (lv_stonebeing_12_0= '#stonebeing' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4969:1: (lv_stonebeing_12_0= '#stonebeing' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4969:1: (lv_stonebeing_12_0= '#stonebeing' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4970:3: lv_stonebeing_12_0= '#stonebeing'
                    {
                    lv_stonebeing_12_0=(Token)match(input,179,FOLLOW_179_in_ruleMonsterInst411981); 

                            newLeafNode(lv_stonebeing_12_0, grammarAccess.getMonsterInst4Access().getStonebeingStonebeingKeyword_12_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getMonsterInst4Rule());
                    	        }
                           		setWithLastConsumed(current, "stonebeing", true, "#stonebeing");
                    	    

                    }


                    }


                    }
                    break;
                case 14 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4984:6: ( (lv_inanimate_13_0= '#inanimate' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4984:6: ( (lv_inanimate_13_0= '#inanimate' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4985:1: (lv_inanimate_13_0= '#inanimate' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4985:1: (lv_inanimate_13_0= '#inanimate' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:4986:3: lv_inanimate_13_0= '#inanimate'
                    {
                    lv_inanimate_13_0=(Token)match(input,180,FOLLOW_180_in_ruleMonsterInst412018); 

                            newLeafNode(lv_inanimate_13_0, grammarAccess.getMonsterInst4Access().getInanimateInanimateKeyword_13_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getMonsterInst4Rule());
                    	        }
                           		setWithLastConsumed(current, "inanimate", true, "#inanimate");
                    	    

                    }


                    }


                    }
                    break;
                case 15 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5000:6: ( (lv_coldblood_14_0= '#coldblood' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5000:6: ( (lv_coldblood_14_0= '#coldblood' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5001:1: (lv_coldblood_14_0= '#coldblood' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5001:1: (lv_coldblood_14_0= '#coldblood' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5002:3: lv_coldblood_14_0= '#coldblood'
                    {
                    lv_coldblood_14_0=(Token)match(input,181,FOLLOW_181_in_ruleMonsterInst412055); 

                            newLeafNode(lv_coldblood_14_0, grammarAccess.getMonsterInst4Access().getColdbloodColdbloodKeyword_14_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getMonsterInst4Rule());
                    	        }
                           		setWithLastConsumed(current, "coldblood", true, "#coldblood");
                    	    

                    }


                    }


                    }
                    break;
                case 16 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5016:6: ( (lv_coldblood_15_0= '#coldblooded' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5016:6: ( (lv_coldblood_15_0= '#coldblooded' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5017:1: (lv_coldblood_15_0= '#coldblooded' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5017:1: (lv_coldblood_15_0= '#coldblooded' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5018:3: lv_coldblood_15_0= '#coldblooded'
                    {
                    lv_coldblood_15_0=(Token)match(input,182,FOLLOW_182_in_ruleMonsterInst412092); 

                            newLeafNode(lv_coldblood_15_0, grammarAccess.getMonsterInst4Access().getColdbloodColdbloodedKeyword_15_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getMonsterInst4Rule());
                    	        }
                           		setWithLastConsumed(current, "coldblood", true, "#coldblooded");
                    	    

                    }


                    }


                    }
                    break;
                case 17 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5032:6: ( (lv_immortal_16_0= '#immortal' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5032:6: ( (lv_immortal_16_0= '#immortal' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5033:1: (lv_immortal_16_0= '#immortal' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5033:1: (lv_immortal_16_0= '#immortal' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5034:3: lv_immortal_16_0= '#immortal'
                    {
                    lv_immortal_16_0=(Token)match(input,183,FOLLOW_183_in_ruleMonsterInst412129); 

                            newLeafNode(lv_immortal_16_0, grammarAccess.getMonsterInst4Access().getImmortalImmortalKeyword_16_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getMonsterInst4Rule());
                    	        }
                           		setWithLastConsumed(current, "immortal", true, "#immortal");
                    	    

                    }


                    }


                    }
                    break;
                case 18 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5048:6: ( (lv_blind_17_0= '#blind' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5048:6: ( (lv_blind_17_0= '#blind' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5049:1: (lv_blind_17_0= '#blind' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5049:1: (lv_blind_17_0= '#blind' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5050:3: lv_blind_17_0= '#blind'
                    {
                    lv_blind_17_0=(Token)match(input,184,FOLLOW_184_in_ruleMonsterInst412166); 

                            newLeafNode(lv_blind_17_0, grammarAccess.getMonsterInst4Access().getBlindBlindKeyword_17_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getMonsterInst4Rule());
                    	        }
                           		setWithLastConsumed(current, "blind", true, "#blind");
                    	    

                    }


                    }


                    }
                    break;
                case 19 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5064:6: ( (lv_unique_18_0= '#unique' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5064:6: ( (lv_unique_18_0= '#unique' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5065:1: (lv_unique_18_0= '#unique' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5065:1: (lv_unique_18_0= '#unique' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5066:3: lv_unique_18_0= '#unique'
                    {
                    lv_unique_18_0=(Token)match(input,185,FOLLOW_185_in_ruleMonsterInst412203); 

                            newLeafNode(lv_unique_18_0, grammarAccess.getMonsterInst4Access().getUniqueUniqueKeyword_18_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getMonsterInst4Rule());
                    	        }
                           		setWithLastConsumed(current, "unique", true, "#unique");
                    	    

                    }


                    }


                    }
                    break;
                case 20 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5080:6: ( (lv_immobile_19_0= '#immobile' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5080:6: ( (lv_immobile_19_0= '#immobile' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5081:1: (lv_immobile_19_0= '#immobile' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5081:1: (lv_immobile_19_0= '#immobile' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5082:3: lv_immobile_19_0= '#immobile'
                    {
                    lv_immobile_19_0=(Token)match(input,186,FOLLOW_186_in_ruleMonsterInst412240); 

                            newLeafNode(lv_immobile_19_0, grammarAccess.getMonsterInst4Access().getImmobileImmobileKeyword_19_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getMonsterInst4Rule());
                    	        }
                           		setWithLastConsumed(current, "immobile", true, "#immobile");
                    	    

                    }


                    }


                    }
                    break;
                case 21 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5096:6: ( (lv_aquatic_20_0= '#aquatic' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5096:6: ( (lv_aquatic_20_0= '#aquatic' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5097:1: (lv_aquatic_20_0= '#aquatic' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5097:1: (lv_aquatic_20_0= '#aquatic' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5098:3: lv_aquatic_20_0= '#aquatic'
                    {
                    lv_aquatic_20_0=(Token)match(input,187,FOLLOW_187_in_ruleMonsterInst412277); 

                            newLeafNode(lv_aquatic_20_0, grammarAccess.getMonsterInst4Access().getAquaticAquaticKeyword_20_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getMonsterInst4Rule());
                    	        }
                           		setWithLastConsumed(current, "aquatic", true, "#aquatic");
                    	    

                    }


                    }


                    }
                    break;
                case 22 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5112:6: ( (lv_amphibian_21_0= '#amphibian' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5112:6: ( (lv_amphibian_21_0= '#amphibian' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5113:1: (lv_amphibian_21_0= '#amphibian' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5113:1: (lv_amphibian_21_0= '#amphibian' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5114:3: lv_amphibian_21_0= '#amphibian'
                    {
                    lv_amphibian_21_0=(Token)match(input,188,FOLLOW_188_in_ruleMonsterInst412314); 

                            newLeafNode(lv_amphibian_21_0, grammarAccess.getMonsterInst4Access().getAmphibianAmphibianKeyword_21_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getMonsterInst4Rule());
                    	        }
                           		setWithLastConsumed(current, "amphibian", true, "#amphibian");
                    	    

                    }


                    }


                    }
                    break;
                case 23 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5128:6: ( (lv_pooramphibian_22_0= '#pooramphibian' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5128:6: ( (lv_pooramphibian_22_0= '#pooramphibian' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5129:1: (lv_pooramphibian_22_0= '#pooramphibian' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5129:1: (lv_pooramphibian_22_0= '#pooramphibian' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5130:3: lv_pooramphibian_22_0= '#pooramphibian'
                    {
                    lv_pooramphibian_22_0=(Token)match(input,189,FOLLOW_189_in_ruleMonsterInst412351); 

                            newLeafNode(lv_pooramphibian_22_0, grammarAccess.getMonsterInst4Access().getPooramphibianPooramphibianKeyword_22_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getMonsterInst4Rule());
                    	        }
                           		setWithLastConsumed(current, "pooramphibian", true, "#pooramphibian");
                    	    

                    }


                    }


                    }
                    break;
                case 24 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5144:6: ( (lv_flying_23_0= '#flying' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5144:6: ( (lv_flying_23_0= '#flying' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5145:1: (lv_flying_23_0= '#flying' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5145:1: (lv_flying_23_0= '#flying' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5146:3: lv_flying_23_0= '#flying'
                    {
                    lv_flying_23_0=(Token)match(input,190,FOLLOW_190_in_ruleMonsterInst412388); 

                            newLeafNode(lv_flying_23_0, grammarAccess.getMonsterInst4Access().getFlyingFlyingKeyword_23_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getMonsterInst4Rule());
                    	        }
                           		setWithLastConsumed(current, "flying", true, "#flying");
                    	    

                    }


                    }


                    }
                    break;
                case 25 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5160:6: ( (lv_stormimmune_24_0= '#stormimmune' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5160:6: ( (lv_stormimmune_24_0= '#stormimmune' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5161:1: (lv_stormimmune_24_0= '#stormimmune' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5161:1: (lv_stormimmune_24_0= '#stormimmune' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5162:3: lv_stormimmune_24_0= '#stormimmune'
                    {
                    lv_stormimmune_24_0=(Token)match(input,191,FOLLOW_191_in_ruleMonsterInst412425); 

                            newLeafNode(lv_stormimmune_24_0, grammarAccess.getMonsterInst4Access().getStormimmuneStormimmuneKeyword_24_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getMonsterInst4Rule());
                    	        }
                           		setWithLastConsumed(current, "stormimmune", true, "#stormimmune");
                    	    

                    }


                    }


                    }
                    break;
                case 26 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5176:6: ( (lv_sailing_25_0= '#sailing' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5176:6: ( (lv_sailing_25_0= '#sailing' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5177:1: (lv_sailing_25_0= '#sailing' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5177:1: (lv_sailing_25_0= '#sailing' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5178:3: lv_sailing_25_0= '#sailing'
                    {
                    lv_sailing_25_0=(Token)match(input,192,FOLLOW_192_in_ruleMonsterInst412462); 

                            newLeafNode(lv_sailing_25_0, grammarAccess.getMonsterInst4Access().getSailingSailingKeyword_25_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getMonsterInst4Rule());
                    	        }
                           		setWithLastConsumed(current, "sailing", true, "#sailing");
                    	    

                    }


                    }


                    }
                    break;
                case 27 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5192:6: ( (lv_forestsurvival_26_0= '#forestsurvival' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5192:6: ( (lv_forestsurvival_26_0= '#forestsurvival' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5193:1: (lv_forestsurvival_26_0= '#forestsurvival' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5193:1: (lv_forestsurvival_26_0= '#forestsurvival' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5194:3: lv_forestsurvival_26_0= '#forestsurvival'
                    {
                    lv_forestsurvival_26_0=(Token)match(input,193,FOLLOW_193_in_ruleMonsterInst412499); 

                            newLeafNode(lv_forestsurvival_26_0, grammarAccess.getMonsterInst4Access().getForestsurvivalForestsurvivalKeyword_26_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getMonsterInst4Rule());
                    	        }
                           		setWithLastConsumed(current, "forestsurvival", true, "#forestsurvival");
                    	    

                    }


                    }


                    }
                    break;
                case 28 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5208:6: ( (lv_mountainsurvival_27_0= '#mountainsurvival' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5208:6: ( (lv_mountainsurvival_27_0= '#mountainsurvival' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5209:1: (lv_mountainsurvival_27_0= '#mountainsurvival' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5209:1: (lv_mountainsurvival_27_0= '#mountainsurvival' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5210:3: lv_mountainsurvival_27_0= '#mountainsurvival'
                    {
                    lv_mountainsurvival_27_0=(Token)match(input,194,FOLLOW_194_in_ruleMonsterInst412536); 

                            newLeafNode(lv_mountainsurvival_27_0, grammarAccess.getMonsterInst4Access().getMountainsurvivalMountainsurvivalKeyword_27_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getMonsterInst4Rule());
                    	        }
                           		setWithLastConsumed(current, "mountainsurvival", true, "#mountainsurvival");
                    	    

                    }


                    }


                    }
                    break;
                case 29 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5224:6: ( (lv_swampsurvival_28_0= '#swampsurvival' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5224:6: ( (lv_swampsurvival_28_0= '#swampsurvival' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5225:1: (lv_swampsurvival_28_0= '#swampsurvival' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5225:1: (lv_swampsurvival_28_0= '#swampsurvival' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5226:3: lv_swampsurvival_28_0= '#swampsurvival'
                    {
                    lv_swampsurvival_28_0=(Token)match(input,195,FOLLOW_195_in_ruleMonsterInst412573); 

                            newLeafNode(lv_swampsurvival_28_0, grammarAccess.getMonsterInst4Access().getSwampsurvivalSwampsurvivalKeyword_28_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getMonsterInst4Rule());
                    	        }
                           		setWithLastConsumed(current, "swampsurvival", true, "#swampsurvival");
                    	    

                    }


                    }


                    }
                    break;
                case 30 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5240:6: ( (lv_wastesurvival_29_0= '#wastesurvival' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5240:6: ( (lv_wastesurvival_29_0= '#wastesurvival' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5241:1: (lv_wastesurvival_29_0= '#wastesurvival' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5241:1: (lv_wastesurvival_29_0= '#wastesurvival' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5242:3: lv_wastesurvival_29_0= '#wastesurvival'
                    {
                    lv_wastesurvival_29_0=(Token)match(input,196,FOLLOW_196_in_ruleMonsterInst412610); 

                            newLeafNode(lv_wastesurvival_29_0, grammarAccess.getMonsterInst4Access().getWastesurvivalWastesurvivalKeyword_29_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getMonsterInst4Rule());
                    	        }
                           		setWithLastConsumed(current, "wastesurvival", true, "#wastesurvival");
                    	    

                    }


                    }


                    }
                    break;
                case 31 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5256:6: ( (lv_illusion_30_0= '#illusion' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5256:6: ( (lv_illusion_30_0= '#illusion' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5257:1: (lv_illusion_30_0= '#illusion' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5257:1: (lv_illusion_30_0= '#illusion' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5258:3: lv_illusion_30_0= '#illusion'
                    {
                    lv_illusion_30_0=(Token)match(input,197,FOLLOW_197_in_ruleMonsterInst412647); 

                            newLeafNode(lv_illusion_30_0, grammarAccess.getMonsterInst4Access().getIllusionIllusionKeyword_30_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getMonsterInst4Rule());
                    	        }
                           		setWithLastConsumed(current, "illusion", true, "#illusion");
                    	    

                    }


                    }


                    }
                    break;
                case 32 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5272:6: ( (lv_spy_31_0= '#spy' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5272:6: ( (lv_spy_31_0= '#spy' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5273:1: (lv_spy_31_0= '#spy' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5273:1: (lv_spy_31_0= '#spy' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5274:3: lv_spy_31_0= '#spy'
                    {
                    lv_spy_31_0=(Token)match(input,198,FOLLOW_198_in_ruleMonsterInst412684); 

                            newLeafNode(lv_spy_31_0, grammarAccess.getMonsterInst4Access().getSpySpyKeyword_31_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getMonsterInst4Rule());
                    	        }
                           		setWithLastConsumed(current, "spy", true, "#spy");
                    	    

                    }


                    }


                    }
                    break;
                case 33 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5288:6: ( (lv_assassin_32_0= '#assassin' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5288:6: ( (lv_assassin_32_0= '#assassin' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5289:1: (lv_assassin_32_0= '#assassin' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5289:1: (lv_assassin_32_0= '#assassin' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5290:3: lv_assassin_32_0= '#assassin'
                    {
                    lv_assassin_32_0=(Token)match(input,199,FOLLOW_199_in_ruleMonsterInst412721); 

                            newLeafNode(lv_assassin_32_0, grammarAccess.getMonsterInst4Access().getAssassinAssassinKeyword_32_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getMonsterInst4Rule());
                    	        }
                           		setWithLastConsumed(current, "assassin", true, "#assassin");
                    	    

                    }


                    }


                    }
                    break;
                case 34 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5304:6: ( (lv_heal_33_0= '#heal' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5304:6: ( (lv_heal_33_0= '#heal' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5305:1: (lv_heal_33_0= '#heal' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5305:1: (lv_heal_33_0= '#heal' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5306:3: lv_heal_33_0= '#heal'
                    {
                    lv_heal_33_0=(Token)match(input,200,FOLLOW_200_in_ruleMonsterInst412758); 

                            newLeafNode(lv_heal_33_0, grammarAccess.getMonsterInst4Access().getHealHealKeyword_33_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getMonsterInst4Rule());
                    	        }
                           		setWithLastConsumed(current, "heal", true, "#heal");
                    	    

                    }


                    }


                    }
                    break;
                case 35 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5320:6: ( (lv_noheal_34_0= '#noheal' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5320:6: ( (lv_noheal_34_0= '#noheal' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5321:1: (lv_noheal_34_0= '#noheal' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5321:1: (lv_noheal_34_0= '#noheal' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5322:3: lv_noheal_34_0= '#noheal'
                    {
                    lv_noheal_34_0=(Token)match(input,201,FOLLOW_201_in_ruleMonsterInst412795); 

                            newLeafNode(lv_noheal_34_0, grammarAccess.getMonsterInst4Access().getNohealNohealKeyword_34_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getMonsterInst4Rule());
                    	        }
                           		setWithLastConsumed(current, "noheal", true, "#noheal");
                    	    

                    }


                    }


                    }
                    break;
                case 36 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5336:6: ( (lv_neednoteat_35_0= '#neednoteat' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5336:6: ( (lv_neednoteat_35_0= '#neednoteat' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5337:1: (lv_neednoteat_35_0= '#neednoteat' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5337:1: (lv_neednoteat_35_0= '#neednoteat' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5338:3: lv_neednoteat_35_0= '#neednoteat'
                    {
                    lv_neednoteat_35_0=(Token)match(input,202,FOLLOW_202_in_ruleMonsterInst412832); 

                            newLeafNode(lv_neednoteat_35_0, grammarAccess.getMonsterInst4Access().getNeednoteatNeednoteatKeyword_35_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getMonsterInst4Rule());
                    	        }
                           		setWithLastConsumed(current, "neednoteat", true, "#neednoteat");
                    	    

                    }


                    }


                    }
                    break;
                case 37 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5352:6: ( (lv_ethereal_36_0= '#ethereal' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5352:6: ( (lv_ethereal_36_0= '#ethereal' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5353:1: (lv_ethereal_36_0= '#ethereal' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5353:1: (lv_ethereal_36_0= '#ethereal' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5354:3: lv_ethereal_36_0= '#ethereal'
                    {
                    lv_ethereal_36_0=(Token)match(input,203,FOLLOW_203_in_ruleMonsterInst412869); 

                            newLeafNode(lv_ethereal_36_0, grammarAccess.getMonsterInst4Access().getEtherealEtherealKeyword_36_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getMonsterInst4Rule());
                    	        }
                           		setWithLastConsumed(current, "ethereal", true, "#ethereal");
                    	    

                    }


                    }


                    }
                    break;
                case 38 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5368:6: ( (lv_trample_37_0= '#trample' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5368:6: ( (lv_trample_37_0= '#trample' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5369:1: (lv_trample_37_0= '#trample' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5369:1: (lv_trample_37_0= '#trample' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5370:3: lv_trample_37_0= '#trample'
                    {
                    lv_trample_37_0=(Token)match(input,204,FOLLOW_204_in_ruleMonsterInst412906); 

                            newLeafNode(lv_trample_37_0, grammarAccess.getMonsterInst4Access().getTrampleTrampleKeyword_37_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getMonsterInst4Rule());
                    	        }
                           		setWithLastConsumed(current, "trample", true, "#trample");
                    	    

                    }


                    }


                    }
                    break;
                case 39 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5384:6: ( (lv_entangle_38_0= '#entangle' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5384:6: ( (lv_entangle_38_0= '#entangle' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5385:1: (lv_entangle_38_0= '#entangle' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5385:1: (lv_entangle_38_0= '#entangle' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5386:3: lv_entangle_38_0= '#entangle'
                    {
                    lv_entangle_38_0=(Token)match(input,205,FOLLOW_205_in_ruleMonsterInst412943); 

                            newLeafNode(lv_entangle_38_0, grammarAccess.getMonsterInst4Access().getEntangleEntangleKeyword_38_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getMonsterInst4Rule());
                    	        }
                           		setWithLastConsumed(current, "entangle", true, "#entangle");
                    	    

                    }


                    }


                    }
                    break;
                case 40 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5400:6: ( (lv_eyeloss_39_0= '#eyeloss' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5400:6: ( (lv_eyeloss_39_0= '#eyeloss' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5401:1: (lv_eyeloss_39_0= '#eyeloss' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5401:1: (lv_eyeloss_39_0= '#eyeloss' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5402:3: lv_eyeloss_39_0= '#eyeloss'
                    {
                    lv_eyeloss_39_0=(Token)match(input,206,FOLLOW_206_in_ruleMonsterInst412980); 

                            newLeafNode(lv_eyeloss_39_0, grammarAccess.getMonsterInst4Access().getEyelossEyelossKeyword_39_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getMonsterInst4Rule());
                    	        }
                           		setWithLastConsumed(current, "eyeloss", true, "#eyeloss");
                    	    

                    }


                    }


                    }
                    break;
                case 41 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5416:6: ( (lv_horrormark_40_0= '#horrormark' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5416:6: ( (lv_horrormark_40_0= '#horrormark' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5417:1: (lv_horrormark_40_0= '#horrormark' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5417:1: (lv_horrormark_40_0= '#horrormark' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5418:3: lv_horrormark_40_0= '#horrormark'
                    {
                    lv_horrormark_40_0=(Token)match(input,207,FOLLOW_207_in_ruleMonsterInst413017); 

                            newLeafNode(lv_horrormark_40_0, grammarAccess.getMonsterInst4Access().getHorrormarkHorrormarkKeyword_40_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getMonsterInst4Rule());
                    	        }
                           		setWithLastConsumed(current, "horrormark", true, "#horrormark");
                    	    

                    }


                    }


                    }
                    break;
                case 42 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5432:6: ( (lv_poisonarmor_41_0= '#poisonarmor' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5432:6: ( (lv_poisonarmor_41_0= '#poisonarmor' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5433:1: (lv_poisonarmor_41_0= '#poisonarmor' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5433:1: (lv_poisonarmor_41_0= '#poisonarmor' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5434:3: lv_poisonarmor_41_0= '#poisonarmor'
                    {
                    lv_poisonarmor_41_0=(Token)match(input,208,FOLLOW_208_in_ruleMonsterInst413054); 

                            newLeafNode(lv_poisonarmor_41_0, grammarAccess.getMonsterInst4Access().getPoisonarmorPoisonarmorKeyword_41_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getMonsterInst4Rule());
                    	        }
                           		setWithLastConsumed(current, "poisonarmor", true, "#poisonarmor");
                    	    

                    }


                    }


                    }
                    break;
                case 43 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5448:6: ( (lv_inquisitor_42_0= '#inquisitor' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5448:6: ( (lv_inquisitor_42_0= '#inquisitor' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5449:1: (lv_inquisitor_42_0= '#inquisitor' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5449:1: (lv_inquisitor_42_0= '#inquisitor' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5450:3: lv_inquisitor_42_0= '#inquisitor'
                    {
                    lv_inquisitor_42_0=(Token)match(input,209,FOLLOW_209_in_ruleMonsterInst413091); 

                            newLeafNode(lv_inquisitor_42_0, grammarAccess.getMonsterInst4Access().getInquisitorInquisitorKeyword_42_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getMonsterInst4Rule());
                    	        }
                           		setWithLastConsumed(current, "inquisitor", true, "#inquisitor");
                    	    

                    }


                    }


                    }
                    break;
                case 44 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5464:6: ( (lv_noitem_43_0= '#noitem' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5464:6: ( (lv_noitem_43_0= '#noitem' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5465:1: (lv_noitem_43_0= '#noitem' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5465:1: (lv_noitem_43_0= '#noitem' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5466:3: lv_noitem_43_0= '#noitem'
                    {
                    lv_noitem_43_0=(Token)match(input,210,FOLLOW_210_in_ruleMonsterInst413128); 

                            newLeafNode(lv_noitem_43_0, grammarAccess.getMonsterInst4Access().getNoitemNoitemKeyword_43_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getMonsterInst4Rule());
                    	        }
                           		setWithLastConsumed(current, "noitem", true, "#noitem");
                    	    

                    }


                    }


                    }
                    break;
                case 45 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5480:6: ( (lv_drainimmune_44_0= '#drainimmune' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5480:6: ( (lv_drainimmune_44_0= '#drainimmune' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5481:1: (lv_drainimmune_44_0= '#drainimmune' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5481:1: (lv_drainimmune_44_0= '#drainimmune' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5482:3: lv_drainimmune_44_0= '#drainimmune'
                    {
                    lv_drainimmune_44_0=(Token)match(input,211,FOLLOW_211_in_ruleMonsterInst413165); 

                            newLeafNode(lv_drainimmune_44_0, grammarAccess.getMonsterInst4Access().getDrainimmuneDrainimmuneKeyword_44_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getMonsterInst4Rule());
                    	        }
                           		setWithLastConsumed(current, "drainimmune", true, "#drainimmune");
                    	    

                    }


                    }


                    }
                    break;
                case 46 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5496:6: ( (lv_noleader_45_0= '#noleader' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5496:6: ( (lv_noleader_45_0= '#noleader' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5497:1: (lv_noleader_45_0= '#noleader' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5497:1: (lv_noleader_45_0= '#noleader' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5498:3: lv_noleader_45_0= '#noleader'
                    {
                    lv_noleader_45_0=(Token)match(input,212,FOLLOW_212_in_ruleMonsterInst413202); 

                            newLeafNode(lv_noleader_45_0, grammarAccess.getMonsterInst4Access().getNoleaderNoleaderKeyword_45_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getMonsterInst4Rule());
                    	        }
                           		setWithLastConsumed(current, "noleader", true, "#noleader");
                    	    

                    }


                    }


                    }
                    break;
                case 47 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5512:6: ( (lv_poorleader_46_0= '#poorleader' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5512:6: ( (lv_poorleader_46_0= '#poorleader' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5513:1: (lv_poorleader_46_0= '#poorleader' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5513:1: (lv_poorleader_46_0= '#poorleader' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5514:3: lv_poorleader_46_0= '#poorleader'
                    {
                    lv_poorleader_46_0=(Token)match(input,213,FOLLOW_213_in_ruleMonsterInst413239); 

                            newLeafNode(lv_poorleader_46_0, grammarAccess.getMonsterInst4Access().getPoorleaderPoorleaderKeyword_46_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getMonsterInst4Rule());
                    	        }
                           		setWithLastConsumed(current, "poorleader", true, "#poorleader");
                    	    

                    }


                    }


                    }
                    break;
                case 48 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5528:6: ( (lv_okleader_47_0= '#okleader' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5528:6: ( (lv_okleader_47_0= '#okleader' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5529:1: (lv_okleader_47_0= '#okleader' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5529:1: (lv_okleader_47_0= '#okleader' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5530:3: lv_okleader_47_0= '#okleader'
                    {
                    lv_okleader_47_0=(Token)match(input,214,FOLLOW_214_in_ruleMonsterInst413276); 

                            newLeafNode(lv_okleader_47_0, grammarAccess.getMonsterInst4Access().getOkleaderOkleaderKeyword_47_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getMonsterInst4Rule());
                    	        }
                           		setWithLastConsumed(current, "okleader", true, "#okleader");
                    	    

                    }


                    }


                    }
                    break;
                case 49 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5544:6: ( (lv_goodleader_48_0= '#goodleader' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5544:6: ( (lv_goodleader_48_0= '#goodleader' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5545:1: (lv_goodleader_48_0= '#goodleader' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5545:1: (lv_goodleader_48_0= '#goodleader' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5546:3: lv_goodleader_48_0= '#goodleader'
                    {
                    lv_goodleader_48_0=(Token)match(input,215,FOLLOW_215_in_ruleMonsterInst413313); 

                            newLeafNode(lv_goodleader_48_0, grammarAccess.getMonsterInst4Access().getGoodleaderGoodleaderKeyword_48_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getMonsterInst4Rule());
                    	        }
                           		setWithLastConsumed(current, "goodleader", true, "#goodleader");
                    	    

                    }


                    }


                    }
                    break;
                case 50 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5560:6: ( (lv_expertleader_49_0= '#expertleader' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5560:6: ( (lv_expertleader_49_0= '#expertleader' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5561:1: (lv_expertleader_49_0= '#expertleader' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5561:1: (lv_expertleader_49_0= '#expertleader' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5562:3: lv_expertleader_49_0= '#expertleader'
                    {
                    lv_expertleader_49_0=(Token)match(input,216,FOLLOW_216_in_ruleMonsterInst413350); 

                            newLeafNode(lv_expertleader_49_0, grammarAccess.getMonsterInst4Access().getExpertleaderExpertleaderKeyword_49_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getMonsterInst4Rule());
                    	        }
                           		setWithLastConsumed(current, "expertleader", true, "#expertleader");
                    	    

                    }


                    }


                    }
                    break;
                case 51 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5576:6: ( (lv_superiorleader_50_0= '#superiorleader' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5576:6: ( (lv_superiorleader_50_0= '#superiorleader' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5577:1: (lv_superiorleader_50_0= '#superiorleader' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5577:1: (lv_superiorleader_50_0= '#superiorleader' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5578:3: lv_superiorleader_50_0= '#superiorleader'
                    {
                    lv_superiorleader_50_0=(Token)match(input,217,FOLLOW_217_in_ruleMonsterInst413387); 

                            newLeafNode(lv_superiorleader_50_0, grammarAccess.getMonsterInst4Access().getSuperiorleaderSuperiorleaderKeyword_50_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getMonsterInst4Rule());
                    	        }
                           		setWithLastConsumed(current, "superiorleader", true, "#superiorleader");
                    	    

                    }


                    }


                    }
                    break;
                case 52 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5592:6: ( (lv_nomagicleader_51_0= '#nomagicleader' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5592:6: ( (lv_nomagicleader_51_0= '#nomagicleader' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5593:1: (lv_nomagicleader_51_0= '#nomagicleader' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5593:1: (lv_nomagicleader_51_0= '#nomagicleader' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5594:3: lv_nomagicleader_51_0= '#nomagicleader'
                    {
                    lv_nomagicleader_51_0=(Token)match(input,218,FOLLOW_218_in_ruleMonsterInst413424); 

                            newLeafNode(lv_nomagicleader_51_0, grammarAccess.getMonsterInst4Access().getNomagicleaderNomagicleaderKeyword_51_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getMonsterInst4Rule());
                    	        }
                           		setWithLastConsumed(current, "nomagicleader", true, "#nomagicleader");
                    	    

                    }


                    }


                    }
                    break;
                case 53 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5608:6: ( (lv_poormagicleader_52_0= '#poormagicleader' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5608:6: ( (lv_poormagicleader_52_0= '#poormagicleader' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5609:1: (lv_poormagicleader_52_0= '#poormagicleader' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5609:1: (lv_poormagicleader_52_0= '#poormagicleader' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5610:3: lv_poormagicleader_52_0= '#poormagicleader'
                    {
                    lv_poormagicleader_52_0=(Token)match(input,219,FOLLOW_219_in_ruleMonsterInst413461); 

                            newLeafNode(lv_poormagicleader_52_0, grammarAccess.getMonsterInst4Access().getPoormagicleaderPoormagicleaderKeyword_52_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getMonsterInst4Rule());
                    	        }
                           		setWithLastConsumed(current, "poormagicleader", true, "#poormagicleader");
                    	    

                    }


                    }


                    }
                    break;
                case 54 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5624:6: ( (lv_okmagicleader_53_0= '#okmagicleader' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5624:6: ( (lv_okmagicleader_53_0= '#okmagicleader' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5625:1: (lv_okmagicleader_53_0= '#okmagicleader' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5625:1: (lv_okmagicleader_53_0= '#okmagicleader' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5626:3: lv_okmagicleader_53_0= '#okmagicleader'
                    {
                    lv_okmagicleader_53_0=(Token)match(input,220,FOLLOW_220_in_ruleMonsterInst413498); 

                            newLeafNode(lv_okmagicleader_53_0, grammarAccess.getMonsterInst4Access().getOkmagicleaderOkmagicleaderKeyword_53_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getMonsterInst4Rule());
                    	        }
                           		setWithLastConsumed(current, "okmagicleader", true, "#okmagicleader");
                    	    

                    }


                    }


                    }
                    break;
                case 55 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5640:6: ( (lv_goodmagicleader_54_0= '#goodmagicleader' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5640:6: ( (lv_goodmagicleader_54_0= '#goodmagicleader' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5641:1: (lv_goodmagicleader_54_0= '#goodmagicleader' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5641:1: (lv_goodmagicleader_54_0= '#goodmagicleader' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5642:3: lv_goodmagicleader_54_0= '#goodmagicleader'
                    {
                    lv_goodmagicleader_54_0=(Token)match(input,221,FOLLOW_221_in_ruleMonsterInst413535); 

                            newLeafNode(lv_goodmagicleader_54_0, grammarAccess.getMonsterInst4Access().getGoodmagicleaderGoodmagicleaderKeyword_54_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getMonsterInst4Rule());
                    	        }
                           		setWithLastConsumed(current, "goodmagicleader", true, "#goodmagicleader");
                    	    

                    }


                    }


                    }
                    break;
                case 56 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5656:6: ( (lv_expertmagicleader_55_0= '#expertmagicleader' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5656:6: ( (lv_expertmagicleader_55_0= '#expertmagicleader' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5657:1: (lv_expertmagicleader_55_0= '#expertmagicleader' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5657:1: (lv_expertmagicleader_55_0= '#expertmagicleader' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5658:3: lv_expertmagicleader_55_0= '#expertmagicleader'
                    {
                    lv_expertmagicleader_55_0=(Token)match(input,222,FOLLOW_222_in_ruleMonsterInst413572); 

                            newLeafNode(lv_expertmagicleader_55_0, grammarAccess.getMonsterInst4Access().getExpertmagicleaderExpertmagicleaderKeyword_55_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getMonsterInst4Rule());
                    	        }
                           		setWithLastConsumed(current, "expertmagicleader", true, "#expertmagicleader");
                    	    

                    }


                    }


                    }
                    break;
                case 57 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5672:6: ( (lv_superiormagicleader_56_0= '#superiormagicleader' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5672:6: ( (lv_superiormagicleader_56_0= '#superiormagicleader' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5673:1: (lv_superiormagicleader_56_0= '#superiormagicleader' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5673:1: (lv_superiormagicleader_56_0= '#superiormagicleader' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5674:3: lv_superiormagicleader_56_0= '#superiormagicleader'
                    {
                    lv_superiormagicleader_56_0=(Token)match(input,223,FOLLOW_223_in_ruleMonsterInst413609); 

                            newLeafNode(lv_superiormagicleader_56_0, grammarAccess.getMonsterInst4Access().getSuperiormagicleaderSuperiormagicleaderKeyword_56_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getMonsterInst4Rule());
                    	        }
                           		setWithLastConsumed(current, "superiormagicleader", true, "#superiormagicleader");
                    	    

                    }


                    }


                    }
                    break;
                case 58 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5688:6: ( (lv_noundeadleader_57_0= '#noundeadleader' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5688:6: ( (lv_noundeadleader_57_0= '#noundeadleader' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5689:1: (lv_noundeadleader_57_0= '#noundeadleader' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5689:1: (lv_noundeadleader_57_0= '#noundeadleader' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5690:3: lv_noundeadleader_57_0= '#noundeadleader'
                    {
                    lv_noundeadleader_57_0=(Token)match(input,224,FOLLOW_224_in_ruleMonsterInst413646); 

                            newLeafNode(lv_noundeadleader_57_0, grammarAccess.getMonsterInst4Access().getNoundeadleaderNoundeadleaderKeyword_57_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getMonsterInst4Rule());
                    	        }
                           		setWithLastConsumed(current, "noundeadleader", true, "#noundeadleader");
                    	    

                    }


                    }


                    }
                    break;
                case 59 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5704:6: ( (lv_poorundeadleader_58_0= '#poorundeadleader' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5704:6: ( (lv_poorundeadleader_58_0= '#poorundeadleader' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5705:1: (lv_poorundeadleader_58_0= '#poorundeadleader' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5705:1: (lv_poorundeadleader_58_0= '#poorundeadleader' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5706:3: lv_poorundeadleader_58_0= '#poorundeadleader'
                    {
                    lv_poorundeadleader_58_0=(Token)match(input,225,FOLLOW_225_in_ruleMonsterInst413683); 

                            newLeafNode(lv_poorundeadleader_58_0, grammarAccess.getMonsterInst4Access().getPoorundeadleaderPoorundeadleaderKeyword_58_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getMonsterInst4Rule());
                    	        }
                           		setWithLastConsumed(current, "poorundeadleader", true, "#poorundeadleader");
                    	    

                    }


                    }


                    }
                    break;
                case 60 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5720:6: ( (lv_okundeadleader_59_0= '#okundeadleader' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5720:6: ( (lv_okundeadleader_59_0= '#okundeadleader' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5721:1: (lv_okundeadleader_59_0= '#okundeadleader' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5721:1: (lv_okundeadleader_59_0= '#okundeadleader' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5722:3: lv_okundeadleader_59_0= '#okundeadleader'
                    {
                    lv_okundeadleader_59_0=(Token)match(input,226,FOLLOW_226_in_ruleMonsterInst413720); 

                            newLeafNode(lv_okundeadleader_59_0, grammarAccess.getMonsterInst4Access().getOkundeadleaderOkundeadleaderKeyword_59_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getMonsterInst4Rule());
                    	        }
                           		setWithLastConsumed(current, "okundeadleader", true, "#okundeadleader");
                    	    

                    }


                    }


                    }
                    break;
                case 61 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5736:6: ( (lv_goodundeadleader_60_0= '#goodundeadleader' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5736:6: ( (lv_goodundeadleader_60_0= '#goodundeadleader' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5737:1: (lv_goodundeadleader_60_0= '#goodundeadleader' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5737:1: (lv_goodundeadleader_60_0= '#goodundeadleader' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5738:3: lv_goodundeadleader_60_0= '#goodundeadleader'
                    {
                    lv_goodundeadleader_60_0=(Token)match(input,227,FOLLOW_227_in_ruleMonsterInst413757); 

                            newLeafNode(lv_goodundeadleader_60_0, grammarAccess.getMonsterInst4Access().getGoodundeadleaderGoodundeadleaderKeyword_60_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getMonsterInst4Rule());
                    	        }
                           		setWithLastConsumed(current, "goodundeadleader", true, "#goodundeadleader");
                    	    

                    }


                    }


                    }
                    break;
                case 62 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5752:6: ( (lv_expertundeadleader_61_0= '#expertundeadleader' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5752:6: ( (lv_expertundeadleader_61_0= '#expertundeadleader' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5753:1: (lv_expertundeadleader_61_0= '#expertundeadleader' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5753:1: (lv_expertundeadleader_61_0= '#expertundeadleader' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5754:3: lv_expertundeadleader_61_0= '#expertundeadleader'
                    {
                    lv_expertundeadleader_61_0=(Token)match(input,228,FOLLOW_228_in_ruleMonsterInst413794); 

                            newLeafNode(lv_expertundeadleader_61_0, grammarAccess.getMonsterInst4Access().getExpertundeadleaderExpertundeadleaderKeyword_61_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getMonsterInst4Rule());
                    	        }
                           		setWithLastConsumed(current, "expertundeadleader", true, "#expertundeadleader");
                    	    

                    }


                    }


                    }
                    break;
                case 63 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5768:6: ( (lv_superiorundeadleader_62_0= '#superiorundeadleader' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5768:6: ( (lv_superiorundeadleader_62_0= '#superiorundeadleader' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5769:1: (lv_superiorundeadleader_62_0= '#superiorundeadleader' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5769:1: (lv_superiorundeadleader_62_0= '#superiorundeadleader' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5770:3: lv_superiorundeadleader_62_0= '#superiorundeadleader'
                    {
                    lv_superiorundeadleader_62_0=(Token)match(input,229,FOLLOW_229_in_ruleMonsterInst413831); 

                            newLeafNode(lv_superiorundeadleader_62_0, grammarAccess.getMonsterInst4Access().getSuperiorundeadleaderSuperiorundeadleaderKeyword_62_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getMonsterInst4Rule());
                    	        }
                           		setWithLastConsumed(current, "superiorundeadleader", true, "#superiorundeadleader");
                    	    

                    }


                    }


                    }
                    break;

            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleMonsterInst4"


    // $ANTLR start "entryRuleMonsterInst5"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5791:1: entryRuleMonsterInst5 returns [EObject current=null] : iv_ruleMonsterInst5= ruleMonsterInst5 EOF ;
    public final EObject entryRuleMonsterInst5() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleMonsterInst5 = null;


        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5792:2: (iv_ruleMonsterInst5= ruleMonsterInst5 EOF )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5793:2: iv_ruleMonsterInst5= ruleMonsterInst5 EOF
            {
             newCompositeNode(grammarAccess.getMonsterInst5Rule()); 
            pushFollow(FOLLOW_ruleMonsterInst5_in_entryRuleMonsterInst513880);
            iv_ruleMonsterInst5=ruleMonsterInst5();

            state._fsp--;

             current =iv_ruleMonsterInst5; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleMonsterInst513890); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleMonsterInst5"


    // $ANTLR start "ruleMonsterInst5"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5800:1: ruleMonsterInst5 returns [EObject current=null] : ( ( (lv_weapon_0_0= '#weapon' ) ) | ( (lv_armor_1_0= '#armor' ) ) | ( (lv_onebattlespell_2_0= '#onebattlespell' ) ) | ( (lv_firstshape_3_0= '#firstshape' ) ) | ( (lv_secondshape_4_0= '#secondshape' ) ) | ( (lv_secondtmpshape_5_0= '#secondtmpshape' ) ) | ( (lv_shapechange_6_0= '#shapechange' ) ) | ( (lv_landshape_7_0= '#landshape' ) ) | ( (lv_watershape_8_0= '#watershape' ) ) | ( (lv_forestshape_9_0= '#forestshape' ) ) | ( (lv_plainshape_10_0= '#plainshape' ) ) | ( (lv_domsummon_11_0= '#domsummon' ) ) | ( (lv_domsummon2_12_0= '#domsummon2' ) ) | ( (lv_domsummon20_13_0= '#domsummon20' ) ) | ( (lv_makemonster1_14_0= '#makemonster1' ) ) | ( (lv_makemonster2_15_0= '#makemonster2' ) ) | ( (lv_makemonster3_16_0= '#makemonster3' ) ) | ( (lv_makemonster4_17_0= '#makemonster4' ) ) | ( (lv_makemonster5_18_0= '#makemonster5' ) ) | ( (lv_summon1_19_0= '#summon1' ) ) | ( (lv_summon5_20_0= '#summon5' ) ) ) ;
    public final EObject ruleMonsterInst5() throws RecognitionException {
        EObject current = null;

        Token lv_weapon_0_0=null;
        Token lv_armor_1_0=null;
        Token lv_onebattlespell_2_0=null;
        Token lv_firstshape_3_0=null;
        Token lv_secondshape_4_0=null;
        Token lv_secondtmpshape_5_0=null;
        Token lv_shapechange_6_0=null;
        Token lv_landshape_7_0=null;
        Token lv_watershape_8_0=null;
        Token lv_forestshape_9_0=null;
        Token lv_plainshape_10_0=null;
        Token lv_domsummon_11_0=null;
        Token lv_domsummon2_12_0=null;
        Token lv_domsummon20_13_0=null;
        Token lv_makemonster1_14_0=null;
        Token lv_makemonster2_15_0=null;
        Token lv_makemonster3_16_0=null;
        Token lv_makemonster4_17_0=null;
        Token lv_makemonster5_18_0=null;
        Token lv_summon1_19_0=null;
        Token lv_summon5_20_0=null;

         enterRule(); 
            
        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5803:28: ( ( ( (lv_weapon_0_0= '#weapon' ) ) | ( (lv_armor_1_0= '#armor' ) ) | ( (lv_onebattlespell_2_0= '#onebattlespell' ) ) | ( (lv_firstshape_3_0= '#firstshape' ) ) | ( (lv_secondshape_4_0= '#secondshape' ) ) | ( (lv_secondtmpshape_5_0= '#secondtmpshape' ) ) | ( (lv_shapechange_6_0= '#shapechange' ) ) | ( (lv_landshape_7_0= '#landshape' ) ) | ( (lv_watershape_8_0= '#watershape' ) ) | ( (lv_forestshape_9_0= '#forestshape' ) ) | ( (lv_plainshape_10_0= '#plainshape' ) ) | ( (lv_domsummon_11_0= '#domsummon' ) ) | ( (lv_domsummon2_12_0= '#domsummon2' ) ) | ( (lv_domsummon20_13_0= '#domsummon20' ) ) | ( (lv_makemonster1_14_0= '#makemonster1' ) ) | ( (lv_makemonster2_15_0= '#makemonster2' ) ) | ( (lv_makemonster3_16_0= '#makemonster3' ) ) | ( (lv_makemonster4_17_0= '#makemonster4' ) ) | ( (lv_makemonster5_18_0= '#makemonster5' ) ) | ( (lv_summon1_19_0= '#summon1' ) ) | ( (lv_summon5_20_0= '#summon5' ) ) ) )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5804:1: ( ( (lv_weapon_0_0= '#weapon' ) ) | ( (lv_armor_1_0= '#armor' ) ) | ( (lv_onebattlespell_2_0= '#onebattlespell' ) ) | ( (lv_firstshape_3_0= '#firstshape' ) ) | ( (lv_secondshape_4_0= '#secondshape' ) ) | ( (lv_secondtmpshape_5_0= '#secondtmpshape' ) ) | ( (lv_shapechange_6_0= '#shapechange' ) ) | ( (lv_landshape_7_0= '#landshape' ) ) | ( (lv_watershape_8_0= '#watershape' ) ) | ( (lv_forestshape_9_0= '#forestshape' ) ) | ( (lv_plainshape_10_0= '#plainshape' ) ) | ( (lv_domsummon_11_0= '#domsummon' ) ) | ( (lv_domsummon2_12_0= '#domsummon2' ) ) | ( (lv_domsummon20_13_0= '#domsummon20' ) ) | ( (lv_makemonster1_14_0= '#makemonster1' ) ) | ( (lv_makemonster2_15_0= '#makemonster2' ) ) | ( (lv_makemonster3_16_0= '#makemonster3' ) ) | ( (lv_makemonster4_17_0= '#makemonster4' ) ) | ( (lv_makemonster5_18_0= '#makemonster5' ) ) | ( (lv_summon1_19_0= '#summon1' ) ) | ( (lv_summon5_20_0= '#summon5' ) ) )
            {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5804:1: ( ( (lv_weapon_0_0= '#weapon' ) ) | ( (lv_armor_1_0= '#armor' ) ) | ( (lv_onebattlespell_2_0= '#onebattlespell' ) ) | ( (lv_firstshape_3_0= '#firstshape' ) ) | ( (lv_secondshape_4_0= '#secondshape' ) ) | ( (lv_secondtmpshape_5_0= '#secondtmpshape' ) ) | ( (lv_shapechange_6_0= '#shapechange' ) ) | ( (lv_landshape_7_0= '#landshape' ) ) | ( (lv_watershape_8_0= '#watershape' ) ) | ( (lv_forestshape_9_0= '#forestshape' ) ) | ( (lv_plainshape_10_0= '#plainshape' ) ) | ( (lv_domsummon_11_0= '#domsummon' ) ) | ( (lv_domsummon2_12_0= '#domsummon2' ) ) | ( (lv_domsummon20_13_0= '#domsummon20' ) ) | ( (lv_makemonster1_14_0= '#makemonster1' ) ) | ( (lv_makemonster2_15_0= '#makemonster2' ) ) | ( (lv_makemonster3_16_0= '#makemonster3' ) ) | ( (lv_makemonster4_17_0= '#makemonster4' ) ) | ( (lv_makemonster5_18_0= '#makemonster5' ) ) | ( (lv_summon1_19_0= '#summon1' ) ) | ( (lv_summon5_20_0= '#summon5' ) ) )
            int alt53=21;
            switch ( input.LA(1) ) {
            case 230:
                {
                alt53=1;
                }
                break;
            case 231:
                {
                alt53=2;
                }
                break;
            case 232:
                {
                alt53=3;
                }
                break;
            case 233:
                {
                alt53=4;
                }
                break;
            case 234:
                {
                alt53=5;
                }
                break;
            case 235:
                {
                alt53=6;
                }
                break;
            case 236:
                {
                alt53=7;
                }
                break;
            case 237:
                {
                alt53=8;
                }
                break;
            case 238:
                {
                alt53=9;
                }
                break;
            case 239:
                {
                alt53=10;
                }
                break;
            case 240:
                {
                alt53=11;
                }
                break;
            case 241:
                {
                alt53=12;
                }
                break;
            case 242:
                {
                alt53=13;
                }
                break;
            case 243:
                {
                alt53=14;
                }
                break;
            case 244:
                {
                alt53=15;
                }
                break;
            case 245:
                {
                alt53=16;
                }
                break;
            case 246:
                {
                alt53=17;
                }
                break;
            case 247:
                {
                alt53=18;
                }
                break;
            case 248:
                {
                alt53=19;
                }
                break;
            case 249:
                {
                alt53=20;
                }
                break;
            case 250:
                {
                alt53=21;
                }
                break;
            default:
                NoViableAltException nvae =
                    new NoViableAltException("", 53, 0, input);

                throw nvae;
            }

            switch (alt53) {
                case 1 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5804:2: ( (lv_weapon_0_0= '#weapon' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5804:2: ( (lv_weapon_0_0= '#weapon' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5805:1: (lv_weapon_0_0= '#weapon' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5805:1: (lv_weapon_0_0= '#weapon' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5806:3: lv_weapon_0_0= '#weapon'
                    {
                    lv_weapon_0_0=(Token)match(input,230,FOLLOW_230_in_ruleMonsterInst513933); 

                            newLeafNode(lv_weapon_0_0, grammarAccess.getMonsterInst5Access().getWeaponWeaponKeyword_0_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getMonsterInst5Rule());
                    	        }
                           		setWithLastConsumed(current, "weapon", true, "#weapon");
                    	    

                    }


                    }


                    }
                    break;
                case 2 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5820:6: ( (lv_armor_1_0= '#armor' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5820:6: ( (lv_armor_1_0= '#armor' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5821:1: (lv_armor_1_0= '#armor' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5821:1: (lv_armor_1_0= '#armor' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5822:3: lv_armor_1_0= '#armor'
                    {
                    lv_armor_1_0=(Token)match(input,231,FOLLOW_231_in_ruleMonsterInst513970); 

                            newLeafNode(lv_armor_1_0, grammarAccess.getMonsterInst5Access().getArmorArmorKeyword_1_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getMonsterInst5Rule());
                    	        }
                           		setWithLastConsumed(current, "armor", true, "#armor");
                    	    

                    }


                    }


                    }
                    break;
                case 3 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5836:6: ( (lv_onebattlespell_2_0= '#onebattlespell' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5836:6: ( (lv_onebattlespell_2_0= '#onebattlespell' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5837:1: (lv_onebattlespell_2_0= '#onebattlespell' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5837:1: (lv_onebattlespell_2_0= '#onebattlespell' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5838:3: lv_onebattlespell_2_0= '#onebattlespell'
                    {
                    lv_onebattlespell_2_0=(Token)match(input,232,FOLLOW_232_in_ruleMonsterInst514007); 

                            newLeafNode(lv_onebattlespell_2_0, grammarAccess.getMonsterInst5Access().getOnebattlespellOnebattlespellKeyword_2_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getMonsterInst5Rule());
                    	        }
                           		setWithLastConsumed(current, "onebattlespell", true, "#onebattlespell");
                    	    

                    }


                    }


                    }
                    break;
                case 4 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5852:6: ( (lv_firstshape_3_0= '#firstshape' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5852:6: ( (lv_firstshape_3_0= '#firstshape' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5853:1: (lv_firstshape_3_0= '#firstshape' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5853:1: (lv_firstshape_3_0= '#firstshape' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5854:3: lv_firstshape_3_0= '#firstshape'
                    {
                    lv_firstshape_3_0=(Token)match(input,233,FOLLOW_233_in_ruleMonsterInst514044); 

                            newLeafNode(lv_firstshape_3_0, grammarAccess.getMonsterInst5Access().getFirstshapeFirstshapeKeyword_3_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getMonsterInst5Rule());
                    	        }
                           		setWithLastConsumed(current, "firstshape", true, "#firstshape");
                    	    

                    }


                    }


                    }
                    break;
                case 5 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5868:6: ( (lv_secondshape_4_0= '#secondshape' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5868:6: ( (lv_secondshape_4_0= '#secondshape' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5869:1: (lv_secondshape_4_0= '#secondshape' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5869:1: (lv_secondshape_4_0= '#secondshape' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5870:3: lv_secondshape_4_0= '#secondshape'
                    {
                    lv_secondshape_4_0=(Token)match(input,234,FOLLOW_234_in_ruleMonsterInst514081); 

                            newLeafNode(lv_secondshape_4_0, grammarAccess.getMonsterInst5Access().getSecondshapeSecondshapeKeyword_4_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getMonsterInst5Rule());
                    	        }
                           		setWithLastConsumed(current, "secondshape", true, "#secondshape");
                    	    

                    }


                    }


                    }
                    break;
                case 6 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5884:6: ( (lv_secondtmpshape_5_0= '#secondtmpshape' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5884:6: ( (lv_secondtmpshape_5_0= '#secondtmpshape' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5885:1: (lv_secondtmpshape_5_0= '#secondtmpshape' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5885:1: (lv_secondtmpshape_5_0= '#secondtmpshape' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5886:3: lv_secondtmpshape_5_0= '#secondtmpshape'
                    {
                    lv_secondtmpshape_5_0=(Token)match(input,235,FOLLOW_235_in_ruleMonsterInst514118); 

                            newLeafNode(lv_secondtmpshape_5_0, grammarAccess.getMonsterInst5Access().getSecondtmpshapeSecondtmpshapeKeyword_5_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getMonsterInst5Rule());
                    	        }
                           		setWithLastConsumed(current, "secondtmpshape", true, "#secondtmpshape");
                    	    

                    }


                    }


                    }
                    break;
                case 7 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5900:6: ( (lv_shapechange_6_0= '#shapechange' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5900:6: ( (lv_shapechange_6_0= '#shapechange' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5901:1: (lv_shapechange_6_0= '#shapechange' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5901:1: (lv_shapechange_6_0= '#shapechange' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5902:3: lv_shapechange_6_0= '#shapechange'
                    {
                    lv_shapechange_6_0=(Token)match(input,236,FOLLOW_236_in_ruleMonsterInst514155); 

                            newLeafNode(lv_shapechange_6_0, grammarAccess.getMonsterInst5Access().getShapechangeShapechangeKeyword_6_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getMonsterInst5Rule());
                    	        }
                           		setWithLastConsumed(current, "shapechange", true, "#shapechange");
                    	    

                    }


                    }


                    }
                    break;
                case 8 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5916:6: ( (lv_landshape_7_0= '#landshape' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5916:6: ( (lv_landshape_7_0= '#landshape' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5917:1: (lv_landshape_7_0= '#landshape' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5917:1: (lv_landshape_7_0= '#landshape' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5918:3: lv_landshape_7_0= '#landshape'
                    {
                    lv_landshape_7_0=(Token)match(input,237,FOLLOW_237_in_ruleMonsterInst514192); 

                            newLeafNode(lv_landshape_7_0, grammarAccess.getMonsterInst5Access().getLandshapeLandshapeKeyword_7_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getMonsterInst5Rule());
                    	        }
                           		setWithLastConsumed(current, "landshape", true, "#landshape");
                    	    

                    }


                    }


                    }
                    break;
                case 9 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5932:6: ( (lv_watershape_8_0= '#watershape' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5932:6: ( (lv_watershape_8_0= '#watershape' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5933:1: (lv_watershape_8_0= '#watershape' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5933:1: (lv_watershape_8_0= '#watershape' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5934:3: lv_watershape_8_0= '#watershape'
                    {
                    lv_watershape_8_0=(Token)match(input,238,FOLLOW_238_in_ruleMonsterInst514229); 

                            newLeafNode(lv_watershape_8_0, grammarAccess.getMonsterInst5Access().getWatershapeWatershapeKeyword_8_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getMonsterInst5Rule());
                    	        }
                           		setWithLastConsumed(current, "watershape", true, "#watershape");
                    	    

                    }


                    }


                    }
                    break;
                case 10 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5948:6: ( (lv_forestshape_9_0= '#forestshape' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5948:6: ( (lv_forestshape_9_0= '#forestshape' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5949:1: (lv_forestshape_9_0= '#forestshape' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5949:1: (lv_forestshape_9_0= '#forestshape' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5950:3: lv_forestshape_9_0= '#forestshape'
                    {
                    lv_forestshape_9_0=(Token)match(input,239,FOLLOW_239_in_ruleMonsterInst514266); 

                            newLeafNode(lv_forestshape_9_0, grammarAccess.getMonsterInst5Access().getForestshapeForestshapeKeyword_9_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getMonsterInst5Rule());
                    	        }
                           		setWithLastConsumed(current, "forestshape", true, "#forestshape");
                    	    

                    }


                    }


                    }
                    break;
                case 11 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5964:6: ( (lv_plainshape_10_0= '#plainshape' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5964:6: ( (lv_plainshape_10_0= '#plainshape' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5965:1: (lv_plainshape_10_0= '#plainshape' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5965:1: (lv_plainshape_10_0= '#plainshape' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5966:3: lv_plainshape_10_0= '#plainshape'
                    {
                    lv_plainshape_10_0=(Token)match(input,240,FOLLOW_240_in_ruleMonsterInst514303); 

                            newLeafNode(lv_plainshape_10_0, grammarAccess.getMonsterInst5Access().getPlainshapePlainshapeKeyword_10_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getMonsterInst5Rule());
                    	        }
                           		setWithLastConsumed(current, "plainshape", true, "#plainshape");
                    	    

                    }


                    }


                    }
                    break;
                case 12 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5980:6: ( (lv_domsummon_11_0= '#domsummon' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5980:6: ( (lv_domsummon_11_0= '#domsummon' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5981:1: (lv_domsummon_11_0= '#domsummon' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5981:1: (lv_domsummon_11_0= '#domsummon' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5982:3: lv_domsummon_11_0= '#domsummon'
                    {
                    lv_domsummon_11_0=(Token)match(input,241,FOLLOW_241_in_ruleMonsterInst514340); 

                            newLeafNode(lv_domsummon_11_0, grammarAccess.getMonsterInst5Access().getDomsummonDomsummonKeyword_11_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getMonsterInst5Rule());
                    	        }
                           		setWithLastConsumed(current, "domsummon", true, "#domsummon");
                    	    

                    }


                    }


                    }
                    break;
                case 13 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5996:6: ( (lv_domsummon2_12_0= '#domsummon2' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5996:6: ( (lv_domsummon2_12_0= '#domsummon2' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5997:1: (lv_domsummon2_12_0= '#domsummon2' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5997:1: (lv_domsummon2_12_0= '#domsummon2' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:5998:3: lv_domsummon2_12_0= '#domsummon2'
                    {
                    lv_domsummon2_12_0=(Token)match(input,242,FOLLOW_242_in_ruleMonsterInst514377); 

                            newLeafNode(lv_domsummon2_12_0, grammarAccess.getMonsterInst5Access().getDomsummon2Domsummon2Keyword_12_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getMonsterInst5Rule());
                    	        }
                           		setWithLastConsumed(current, "domsummon2", true, "#domsummon2");
                    	    

                    }


                    }


                    }
                    break;
                case 14 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6012:6: ( (lv_domsummon20_13_0= '#domsummon20' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6012:6: ( (lv_domsummon20_13_0= '#domsummon20' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6013:1: (lv_domsummon20_13_0= '#domsummon20' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6013:1: (lv_domsummon20_13_0= '#domsummon20' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6014:3: lv_domsummon20_13_0= '#domsummon20'
                    {
                    lv_domsummon20_13_0=(Token)match(input,243,FOLLOW_243_in_ruleMonsterInst514414); 

                            newLeafNode(lv_domsummon20_13_0, grammarAccess.getMonsterInst5Access().getDomsummon20Domsummon20Keyword_13_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getMonsterInst5Rule());
                    	        }
                           		setWithLastConsumed(current, "domsummon20", true, "#domsummon20");
                    	    

                    }


                    }


                    }
                    break;
                case 15 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6028:6: ( (lv_makemonster1_14_0= '#makemonster1' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6028:6: ( (lv_makemonster1_14_0= '#makemonster1' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6029:1: (lv_makemonster1_14_0= '#makemonster1' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6029:1: (lv_makemonster1_14_0= '#makemonster1' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6030:3: lv_makemonster1_14_0= '#makemonster1'
                    {
                    lv_makemonster1_14_0=(Token)match(input,244,FOLLOW_244_in_ruleMonsterInst514451); 

                            newLeafNode(lv_makemonster1_14_0, grammarAccess.getMonsterInst5Access().getMakemonster1Makemonster1Keyword_14_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getMonsterInst5Rule());
                    	        }
                           		setWithLastConsumed(current, "makemonster1", true, "#makemonster1");
                    	    

                    }


                    }


                    }
                    break;
                case 16 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6044:6: ( (lv_makemonster2_15_0= '#makemonster2' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6044:6: ( (lv_makemonster2_15_0= '#makemonster2' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6045:1: (lv_makemonster2_15_0= '#makemonster2' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6045:1: (lv_makemonster2_15_0= '#makemonster2' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6046:3: lv_makemonster2_15_0= '#makemonster2'
                    {
                    lv_makemonster2_15_0=(Token)match(input,245,FOLLOW_245_in_ruleMonsterInst514488); 

                            newLeafNode(lv_makemonster2_15_0, grammarAccess.getMonsterInst5Access().getMakemonster2Makemonster2Keyword_15_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getMonsterInst5Rule());
                    	        }
                           		setWithLastConsumed(current, "makemonster2", true, "#makemonster2");
                    	    

                    }


                    }


                    }
                    break;
                case 17 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6060:6: ( (lv_makemonster3_16_0= '#makemonster3' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6060:6: ( (lv_makemonster3_16_0= '#makemonster3' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6061:1: (lv_makemonster3_16_0= '#makemonster3' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6061:1: (lv_makemonster3_16_0= '#makemonster3' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6062:3: lv_makemonster3_16_0= '#makemonster3'
                    {
                    lv_makemonster3_16_0=(Token)match(input,246,FOLLOW_246_in_ruleMonsterInst514525); 

                            newLeafNode(lv_makemonster3_16_0, grammarAccess.getMonsterInst5Access().getMakemonster3Makemonster3Keyword_16_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getMonsterInst5Rule());
                    	        }
                           		setWithLastConsumed(current, "makemonster3", true, "#makemonster3");
                    	    

                    }


                    }


                    }
                    break;
                case 18 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6076:6: ( (lv_makemonster4_17_0= '#makemonster4' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6076:6: ( (lv_makemonster4_17_0= '#makemonster4' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6077:1: (lv_makemonster4_17_0= '#makemonster4' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6077:1: (lv_makemonster4_17_0= '#makemonster4' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6078:3: lv_makemonster4_17_0= '#makemonster4'
                    {
                    lv_makemonster4_17_0=(Token)match(input,247,FOLLOW_247_in_ruleMonsterInst514562); 

                            newLeafNode(lv_makemonster4_17_0, grammarAccess.getMonsterInst5Access().getMakemonster4Makemonster4Keyword_17_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getMonsterInst5Rule());
                    	        }
                           		setWithLastConsumed(current, "makemonster4", true, "#makemonster4");
                    	    

                    }


                    }


                    }
                    break;
                case 19 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6092:6: ( (lv_makemonster5_18_0= '#makemonster5' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6092:6: ( (lv_makemonster5_18_0= '#makemonster5' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6093:1: (lv_makemonster5_18_0= '#makemonster5' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6093:1: (lv_makemonster5_18_0= '#makemonster5' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6094:3: lv_makemonster5_18_0= '#makemonster5'
                    {
                    lv_makemonster5_18_0=(Token)match(input,248,FOLLOW_248_in_ruleMonsterInst514599); 

                            newLeafNode(lv_makemonster5_18_0, grammarAccess.getMonsterInst5Access().getMakemonster5Makemonster5Keyword_18_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getMonsterInst5Rule());
                    	        }
                           		setWithLastConsumed(current, "makemonster5", true, "#makemonster5");
                    	    

                    }


                    }


                    }
                    break;
                case 20 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6108:6: ( (lv_summon1_19_0= '#summon1' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6108:6: ( (lv_summon1_19_0= '#summon1' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6109:1: (lv_summon1_19_0= '#summon1' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6109:1: (lv_summon1_19_0= '#summon1' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6110:3: lv_summon1_19_0= '#summon1'
                    {
                    lv_summon1_19_0=(Token)match(input,249,FOLLOW_249_in_ruleMonsterInst514636); 

                            newLeafNode(lv_summon1_19_0, grammarAccess.getMonsterInst5Access().getSummon1Summon1Keyword_19_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getMonsterInst5Rule());
                    	        }
                           		setWithLastConsumed(current, "summon1", true, "#summon1");
                    	    

                    }


                    }


                    }
                    break;
                case 21 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6124:6: ( (lv_summon5_20_0= '#summon5' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6124:6: ( (lv_summon5_20_0= '#summon5' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6125:1: (lv_summon5_20_0= '#summon5' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6125:1: (lv_summon5_20_0= '#summon5' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6126:3: lv_summon5_20_0= '#summon5'
                    {
                    lv_summon5_20_0=(Token)match(input,250,FOLLOW_250_in_ruleMonsterInst514673); 

                            newLeafNode(lv_summon5_20_0, grammarAccess.getMonsterInst5Access().getSummon5Summon5Keyword_20_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getMonsterInst5Rule());
                    	        }
                           		setWithLastConsumed(current, "summon5", true, "#summon5");
                    	    

                    }


                    }


                    }
                    break;

            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleMonsterInst5"


    // $ANTLR start "entryRuleMonsterInst6"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6147:1: entryRuleMonsterInst6 returns [EObject current=null] : iv_ruleMonsterInst6= ruleMonsterInst6 EOF ;
    public final EObject entryRuleMonsterInst6() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleMonsterInst6 = null;


        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6148:2: (iv_ruleMonsterInst6= ruleMonsterInst6 EOF )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6149:2: iv_ruleMonsterInst6= ruleMonsterInst6 EOF
            {
             newCompositeNode(grammarAccess.getMonsterInst6Rule()); 
            pushFollow(FOLLOW_ruleMonsterInst6_in_entryRuleMonsterInst614722);
            iv_ruleMonsterInst6=ruleMonsterInst6();

            state._fsp--;

             current =iv_ruleMonsterInst6; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleMonsterInst614732); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleMonsterInst6"


    // $ANTLR start "ruleMonsterInst6"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6156:1: ruleMonsterInst6 returns [EObject current=null] : ( ( (lv_stealthy_0_0= '#stealthy' ) ) | ( (lv_heat_1_0= '#heat' ) ) | ( (lv_cold_2_0= '#cold' ) ) ) ;
    public final EObject ruleMonsterInst6() throws RecognitionException {
        EObject current = null;

        Token lv_stealthy_0_0=null;
        Token lv_heat_1_0=null;
        Token lv_cold_2_0=null;

         enterRule(); 
            
        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6159:28: ( ( ( (lv_stealthy_0_0= '#stealthy' ) ) | ( (lv_heat_1_0= '#heat' ) ) | ( (lv_cold_2_0= '#cold' ) ) ) )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6160:1: ( ( (lv_stealthy_0_0= '#stealthy' ) ) | ( (lv_heat_1_0= '#heat' ) ) | ( (lv_cold_2_0= '#cold' ) ) )
            {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6160:1: ( ( (lv_stealthy_0_0= '#stealthy' ) ) | ( (lv_heat_1_0= '#heat' ) ) | ( (lv_cold_2_0= '#cold' ) ) )
            int alt54=3;
            switch ( input.LA(1) ) {
            case 251:
                {
                alt54=1;
                }
                break;
            case 252:
                {
                alt54=2;
                }
                break;
            case 74:
                {
                alt54=3;
                }
                break;
            default:
                NoViableAltException nvae =
                    new NoViableAltException("", 54, 0, input);

                throw nvae;
            }

            switch (alt54) {
                case 1 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6160:2: ( (lv_stealthy_0_0= '#stealthy' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6160:2: ( (lv_stealthy_0_0= '#stealthy' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6161:1: (lv_stealthy_0_0= '#stealthy' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6161:1: (lv_stealthy_0_0= '#stealthy' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6162:3: lv_stealthy_0_0= '#stealthy'
                    {
                    lv_stealthy_0_0=(Token)match(input,251,FOLLOW_251_in_ruleMonsterInst614775); 

                            newLeafNode(lv_stealthy_0_0, grammarAccess.getMonsterInst6Access().getStealthyStealthyKeyword_0_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getMonsterInst6Rule());
                    	        }
                           		setWithLastConsumed(current, "stealthy", true, "#stealthy");
                    	    

                    }


                    }


                    }
                    break;
                case 2 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6176:6: ( (lv_heat_1_0= '#heat' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6176:6: ( (lv_heat_1_0= '#heat' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6177:1: (lv_heat_1_0= '#heat' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6177:1: (lv_heat_1_0= '#heat' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6178:3: lv_heat_1_0= '#heat'
                    {
                    lv_heat_1_0=(Token)match(input,252,FOLLOW_252_in_ruleMonsterInst614812); 

                            newLeafNode(lv_heat_1_0, grammarAccess.getMonsterInst6Access().getHeatHeatKeyword_1_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getMonsterInst6Rule());
                    	        }
                           		setWithLastConsumed(current, "heat", true, "#heat");
                    	    

                    }


                    }


                    }
                    break;
                case 3 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6192:6: ( (lv_cold_2_0= '#cold' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6192:6: ( (lv_cold_2_0= '#cold' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6193:1: (lv_cold_2_0= '#cold' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6193:1: (lv_cold_2_0= '#cold' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6194:3: lv_cold_2_0= '#cold'
                    {
                    lv_cold_2_0=(Token)match(input,74,FOLLOW_74_in_ruleMonsterInst614849); 

                            newLeafNode(lv_cold_2_0, grammarAccess.getMonsterInst6Access().getColdColdKeyword_2_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getMonsterInst6Rule());
                    	        }
                           		setWithLastConsumed(current, "cold", true, "#cold");
                    	    

                    }


                    }


                    }
                    break;

            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleMonsterInst6"


    // $ANTLR start "entryRuleSpell"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6215:1: entryRuleSpell returns [EObject current=null] : iv_ruleSpell= ruleSpell EOF ;
    public final EObject entryRuleSpell() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleSpell = null;


        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6216:2: (iv_ruleSpell= ruleSpell EOF )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6217:2: iv_ruleSpell= ruleSpell EOF
            {
             newCompositeNode(grammarAccess.getSpellRule()); 
            pushFollow(FOLLOW_ruleSpell_in_entryRuleSpell14898);
            iv_ruleSpell=ruleSpell();

            state._fsp--;

             current =iv_ruleSpell; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleSpell14908); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleSpell"


    // $ANTLR start "ruleSpell"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6224:1: ruleSpell returns [EObject current=null] : (this_SelectSpellById_0= ruleSelectSpellById | this_SelectSpellByName_1= ruleSelectSpellByName | this_NewSpell_2= ruleNewSpell ) ;
    public final EObject ruleSpell() throws RecognitionException {
        EObject current = null;

        EObject this_SelectSpellById_0 = null;

        EObject this_SelectSpellByName_1 = null;

        EObject this_NewSpell_2 = null;


         enterRule(); 
            
        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6227:28: ( (this_SelectSpellById_0= ruleSelectSpellById | this_SelectSpellByName_1= ruleSelectSpellByName | this_NewSpell_2= ruleNewSpell ) )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6228:1: (this_SelectSpellById_0= ruleSelectSpellById | this_SelectSpellByName_1= ruleSelectSpellByName | this_NewSpell_2= ruleNewSpell )
            {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6228:1: (this_SelectSpellById_0= ruleSelectSpellById | this_SelectSpellByName_1= ruleSelectSpellByName | this_NewSpell_2= ruleNewSpell )
            int alt55=3;
            int LA55_0 = input.LA(1);

            if ( (LA55_0==253) ) {
                int LA55_1 = input.LA(2);

                if ( (LA55_1==RULE_STRING) ) {
                    alt55=2;
                }
                else if ( (LA55_1==RULE_INT) ) {
                    alt55=1;
                }
                else {
                    NoViableAltException nvae =
                        new NoViableAltException("", 55, 1, input);

                    throw nvae;
                }
            }
            else if ( (LA55_0==254) ) {
                alt55=3;
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("", 55, 0, input);

                throw nvae;
            }
            switch (alt55) {
                case 1 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6229:5: this_SelectSpellById_0= ruleSelectSpellById
                    {
                     
                            newCompositeNode(grammarAccess.getSpellAccess().getSelectSpellByIdParserRuleCall_0()); 
                        
                    pushFollow(FOLLOW_ruleSelectSpellById_in_ruleSpell14955);
                    this_SelectSpellById_0=ruleSelectSpellById();

                    state._fsp--;

                     
                            current = this_SelectSpellById_0; 
                            afterParserOrEnumRuleCall();
                        

                    }
                    break;
                case 2 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6239:5: this_SelectSpellByName_1= ruleSelectSpellByName
                    {
                     
                            newCompositeNode(grammarAccess.getSpellAccess().getSelectSpellByNameParserRuleCall_1()); 
                        
                    pushFollow(FOLLOW_ruleSelectSpellByName_in_ruleSpell14982);
                    this_SelectSpellByName_1=ruleSelectSpellByName();

                    state._fsp--;

                     
                            current = this_SelectSpellByName_1; 
                            afterParserOrEnumRuleCall();
                        

                    }
                    break;
                case 3 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6249:5: this_NewSpell_2= ruleNewSpell
                    {
                     
                            newCompositeNode(grammarAccess.getSpellAccess().getNewSpellParserRuleCall_2()); 
                        
                    pushFollow(FOLLOW_ruleNewSpell_in_ruleSpell15009);
                    this_NewSpell_2=ruleNewSpell();

                    state._fsp--;

                     
                            current = this_NewSpell_2; 
                            afterParserOrEnumRuleCall();
                        

                    }
                    break;

            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleSpell"


    // $ANTLR start "entryRuleSelectSpellById"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6265:1: entryRuleSelectSpellById returns [EObject current=null] : iv_ruleSelectSpellById= ruleSelectSpellById EOF ;
    public final EObject entryRuleSelectSpellById() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleSelectSpellById = null;


        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6266:2: (iv_ruleSelectSpellById= ruleSelectSpellById EOF )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6267:2: iv_ruleSelectSpellById= ruleSelectSpellById EOF
            {
             newCompositeNode(grammarAccess.getSelectSpellByIdRule()); 
            pushFollow(FOLLOW_ruleSelectSpellById_in_entryRuleSelectSpellById15044);
            iv_ruleSelectSpellById=ruleSelectSpellById();

            state._fsp--;

             current =iv_ruleSelectSpellById; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleSelectSpellById15054); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleSelectSpellById"


    // $ANTLR start "ruleSelectSpellById"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6274:1: ruleSelectSpellById returns [EObject current=null] : (otherlv_0= '#selectspell' ( (lv_value_1_0= RULE_INT ) ) (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )* ( (lv_mods_3_0= ruleSpellMods ) )* otherlv_4= '#end' ) ;
    public final EObject ruleSelectSpellById() throws RecognitionException {
        EObject current = null;

        Token otherlv_0=null;
        Token lv_value_1_0=null;
        Token this_FREE_FORM_COMMENT_2=null;
        Token otherlv_4=null;
        EObject lv_mods_3_0 = null;


         enterRule(); 
            
        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6277:28: ( (otherlv_0= '#selectspell' ( (lv_value_1_0= RULE_INT ) ) (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )* ( (lv_mods_3_0= ruleSpellMods ) )* otherlv_4= '#end' ) )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6278:1: (otherlv_0= '#selectspell' ( (lv_value_1_0= RULE_INT ) ) (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )* ( (lv_mods_3_0= ruleSpellMods ) )* otherlv_4= '#end' )
            {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6278:1: (otherlv_0= '#selectspell' ( (lv_value_1_0= RULE_INT ) ) (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )* ( (lv_mods_3_0= ruleSpellMods ) )* otherlv_4= '#end' )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6278:3: otherlv_0= '#selectspell' ( (lv_value_1_0= RULE_INT ) ) (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )* ( (lv_mods_3_0= ruleSpellMods ) )* otherlv_4= '#end'
            {
            otherlv_0=(Token)match(input,253,FOLLOW_253_in_ruleSelectSpellById15091); 

                	newLeafNode(otherlv_0, grammarAccess.getSelectSpellByIdAccess().getSelectspellKeyword_0());
                
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6282:1: ( (lv_value_1_0= RULE_INT ) )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6283:1: (lv_value_1_0= RULE_INT )
            {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6283:1: (lv_value_1_0= RULE_INT )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6284:3: lv_value_1_0= RULE_INT
            {
            lv_value_1_0=(Token)match(input,RULE_INT,FOLLOW_RULE_INT_in_ruleSelectSpellById15108); 

            			newLeafNode(lv_value_1_0, grammarAccess.getSelectSpellByIdAccess().getValueINTTerminalRuleCall_1_0()); 
            		

            	        if (current==null) {
            	            current = createModelElement(grammarAccess.getSelectSpellByIdRule());
            	        }
                   		setWithLastConsumed(
                   			current, 
                   			"value",
                    		lv_value_1_0, 
                    		"INT");
            	    

            }


            }

            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6300:2: (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )*
            loop56:
            do {
                int alt56=2;
                int LA56_0 = input.LA(1);

                if ( (LA56_0==RULE_FREE_FORM_COMMENT) ) {
                    alt56=1;
                }


                switch (alt56) {
            	case 1 :
            	    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6300:3: this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT
            	    {
            	    this_FREE_FORM_COMMENT_2=(Token)match(input,RULE_FREE_FORM_COMMENT,FOLLOW_RULE_FREE_FORM_COMMENT_in_ruleSelectSpellById15125); 
            	     
            	        newLeafNode(this_FREE_FORM_COMMENT_2, grammarAccess.getSelectSpellByIdAccess().getFREE_FORM_COMMENTTerminalRuleCall_2()); 
            	        

            	    }
            	    break;

            	default :
            	    break loop56;
                }
            } while (true);

            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6304:3: ( (lv_mods_3_0= ruleSpellMods ) )*
            loop57:
            do {
                int alt57=2;
                int LA57_0 = input.LA(1);

                if ( (LA57_0==36||LA57_0==48||(LA57_0>=50 && LA57_0<=51)||LA57_0==54||LA57_0==89||LA57_0==167||(LA57_0>=255 && LA57_0<=268)) ) {
                    alt57=1;
                }


                switch (alt57) {
            	case 1 :
            	    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6305:1: (lv_mods_3_0= ruleSpellMods )
            	    {
            	    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6305:1: (lv_mods_3_0= ruleSpellMods )
            	    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6306:3: lv_mods_3_0= ruleSpellMods
            	    {
            	     
            	    	        newCompositeNode(grammarAccess.getSelectSpellByIdAccess().getModsSpellModsParserRuleCall_3_0()); 
            	    	    
            	    pushFollow(FOLLOW_ruleSpellMods_in_ruleSelectSpellById15147);
            	    lv_mods_3_0=ruleSpellMods();

            	    state._fsp--;


            	    	        if (current==null) {
            	    	            current = createModelElementForParent(grammarAccess.getSelectSpellByIdRule());
            	    	        }
            	           		add(
            	           			current, 
            	           			"mods",
            	            		lv_mods_3_0, 
            	            		"SpellMods");
            	    	        afterParserOrEnumRuleCall();
            	    	    

            	    }


            	    }
            	    break;

            	default :
            	    break loop57;
                }
            } while (true);

            otherlv_4=(Token)match(input,15,FOLLOW_15_in_ruleSelectSpellById15160); 

                	newLeafNode(otherlv_4, grammarAccess.getSelectSpellByIdAccess().getEndKeyword_4());
                

            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleSelectSpellById"


    // $ANTLR start "entryRuleSelectSpellByName"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6334:1: entryRuleSelectSpellByName returns [EObject current=null] : iv_ruleSelectSpellByName= ruleSelectSpellByName EOF ;
    public final EObject entryRuleSelectSpellByName() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleSelectSpellByName = null;


        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6335:2: (iv_ruleSelectSpellByName= ruleSelectSpellByName EOF )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6336:2: iv_ruleSelectSpellByName= ruleSelectSpellByName EOF
            {
             newCompositeNode(grammarAccess.getSelectSpellByNameRule()); 
            pushFollow(FOLLOW_ruleSelectSpellByName_in_entryRuleSelectSpellByName15196);
            iv_ruleSelectSpellByName=ruleSelectSpellByName();

            state._fsp--;

             current =iv_ruleSelectSpellByName; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleSelectSpellByName15206); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleSelectSpellByName"


    // $ANTLR start "ruleSelectSpellByName"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6343:1: ruleSelectSpellByName returns [EObject current=null] : (otherlv_0= '#selectspell' ( (lv_value_1_0= RULE_STRING ) ) (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )* ( (lv_mods_3_0= ruleSpellMods ) )* otherlv_4= '#end' ) ;
    public final EObject ruleSelectSpellByName() throws RecognitionException {
        EObject current = null;

        Token otherlv_0=null;
        Token lv_value_1_0=null;
        Token this_FREE_FORM_COMMENT_2=null;
        Token otherlv_4=null;
        EObject lv_mods_3_0 = null;


         enterRule(); 
            
        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6346:28: ( (otherlv_0= '#selectspell' ( (lv_value_1_0= RULE_STRING ) ) (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )* ( (lv_mods_3_0= ruleSpellMods ) )* otherlv_4= '#end' ) )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6347:1: (otherlv_0= '#selectspell' ( (lv_value_1_0= RULE_STRING ) ) (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )* ( (lv_mods_3_0= ruleSpellMods ) )* otherlv_4= '#end' )
            {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6347:1: (otherlv_0= '#selectspell' ( (lv_value_1_0= RULE_STRING ) ) (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )* ( (lv_mods_3_0= ruleSpellMods ) )* otherlv_4= '#end' )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6347:3: otherlv_0= '#selectspell' ( (lv_value_1_0= RULE_STRING ) ) (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )* ( (lv_mods_3_0= ruleSpellMods ) )* otherlv_4= '#end'
            {
            otherlv_0=(Token)match(input,253,FOLLOW_253_in_ruleSelectSpellByName15243); 

                	newLeafNode(otherlv_0, grammarAccess.getSelectSpellByNameAccess().getSelectspellKeyword_0());
                
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6351:1: ( (lv_value_1_0= RULE_STRING ) )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6352:1: (lv_value_1_0= RULE_STRING )
            {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6352:1: (lv_value_1_0= RULE_STRING )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6353:3: lv_value_1_0= RULE_STRING
            {
            lv_value_1_0=(Token)match(input,RULE_STRING,FOLLOW_RULE_STRING_in_ruleSelectSpellByName15260); 

            			newLeafNode(lv_value_1_0, grammarAccess.getSelectSpellByNameAccess().getValueSTRINGTerminalRuleCall_1_0()); 
            		

            	        if (current==null) {
            	            current = createModelElement(grammarAccess.getSelectSpellByNameRule());
            	        }
                   		setWithLastConsumed(
                   			current, 
                   			"value",
                    		lv_value_1_0, 
                    		"STRING");
            	    

            }


            }

            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6369:2: (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )*
            loop58:
            do {
                int alt58=2;
                int LA58_0 = input.LA(1);

                if ( (LA58_0==RULE_FREE_FORM_COMMENT) ) {
                    alt58=1;
                }


                switch (alt58) {
            	case 1 :
            	    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6369:3: this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT
            	    {
            	    this_FREE_FORM_COMMENT_2=(Token)match(input,RULE_FREE_FORM_COMMENT,FOLLOW_RULE_FREE_FORM_COMMENT_in_ruleSelectSpellByName15277); 
            	     
            	        newLeafNode(this_FREE_FORM_COMMENT_2, grammarAccess.getSelectSpellByNameAccess().getFREE_FORM_COMMENTTerminalRuleCall_2()); 
            	        

            	    }
            	    break;

            	default :
            	    break loop58;
                }
            } while (true);

            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6373:3: ( (lv_mods_3_0= ruleSpellMods ) )*
            loop59:
            do {
                int alt59=2;
                int LA59_0 = input.LA(1);

                if ( (LA59_0==36||LA59_0==48||(LA59_0>=50 && LA59_0<=51)||LA59_0==54||LA59_0==89||LA59_0==167||(LA59_0>=255 && LA59_0<=268)) ) {
                    alt59=1;
                }


                switch (alt59) {
            	case 1 :
            	    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6374:1: (lv_mods_3_0= ruleSpellMods )
            	    {
            	    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6374:1: (lv_mods_3_0= ruleSpellMods )
            	    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6375:3: lv_mods_3_0= ruleSpellMods
            	    {
            	     
            	    	        newCompositeNode(grammarAccess.getSelectSpellByNameAccess().getModsSpellModsParserRuleCall_3_0()); 
            	    	    
            	    pushFollow(FOLLOW_ruleSpellMods_in_ruleSelectSpellByName15299);
            	    lv_mods_3_0=ruleSpellMods();

            	    state._fsp--;


            	    	        if (current==null) {
            	    	            current = createModelElementForParent(grammarAccess.getSelectSpellByNameRule());
            	    	        }
            	           		add(
            	           			current, 
            	           			"mods",
            	            		lv_mods_3_0, 
            	            		"SpellMods");
            	    	        afterParserOrEnumRuleCall();
            	    	    

            	    }


            	    }
            	    break;

            	default :
            	    break loop59;
                }
            } while (true);

            otherlv_4=(Token)match(input,15,FOLLOW_15_in_ruleSelectSpellByName15312); 

                	newLeafNode(otherlv_4, grammarAccess.getSelectSpellByNameAccess().getEndKeyword_4());
                

            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleSelectSpellByName"


    // $ANTLR start "entryRuleNewSpell"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6403:1: entryRuleNewSpell returns [EObject current=null] : iv_ruleNewSpell= ruleNewSpell EOF ;
    public final EObject entryRuleNewSpell() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleNewSpell = null;


        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6404:2: (iv_ruleNewSpell= ruleNewSpell EOF )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6405:2: iv_ruleNewSpell= ruleNewSpell EOF
            {
             newCompositeNode(grammarAccess.getNewSpellRule()); 
            pushFollow(FOLLOW_ruleNewSpell_in_entryRuleNewSpell15348);
            iv_ruleNewSpell=ruleNewSpell();

            state._fsp--;

             current =iv_ruleNewSpell; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleNewSpell15358); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleNewSpell"


    // $ANTLR start "ruleNewSpell"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6412:1: ruleNewSpell returns [EObject current=null] : (otherlv_0= '#newspell' (this_FREE_FORM_COMMENT_1= RULE_FREE_FORM_COMMENT )* ( (lv_mods_2_0= ruleSpellMods ) )* otherlv_3= '#end' ) ;
    public final EObject ruleNewSpell() throws RecognitionException {
        EObject current = null;

        Token otherlv_0=null;
        Token this_FREE_FORM_COMMENT_1=null;
        Token otherlv_3=null;
        EObject lv_mods_2_0 = null;


         enterRule(); 
            
        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6415:28: ( (otherlv_0= '#newspell' (this_FREE_FORM_COMMENT_1= RULE_FREE_FORM_COMMENT )* ( (lv_mods_2_0= ruleSpellMods ) )* otherlv_3= '#end' ) )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6416:1: (otherlv_0= '#newspell' (this_FREE_FORM_COMMENT_1= RULE_FREE_FORM_COMMENT )* ( (lv_mods_2_0= ruleSpellMods ) )* otherlv_3= '#end' )
            {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6416:1: (otherlv_0= '#newspell' (this_FREE_FORM_COMMENT_1= RULE_FREE_FORM_COMMENT )* ( (lv_mods_2_0= ruleSpellMods ) )* otherlv_3= '#end' )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6416:3: otherlv_0= '#newspell' (this_FREE_FORM_COMMENT_1= RULE_FREE_FORM_COMMENT )* ( (lv_mods_2_0= ruleSpellMods ) )* otherlv_3= '#end'
            {
            otherlv_0=(Token)match(input,254,FOLLOW_254_in_ruleNewSpell15395); 

                	newLeafNode(otherlv_0, grammarAccess.getNewSpellAccess().getNewspellKeyword_0());
                
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6420:1: (this_FREE_FORM_COMMENT_1= RULE_FREE_FORM_COMMENT )*
            loop60:
            do {
                int alt60=2;
                int LA60_0 = input.LA(1);

                if ( (LA60_0==RULE_FREE_FORM_COMMENT) ) {
                    alt60=1;
                }


                switch (alt60) {
            	case 1 :
            	    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6420:2: this_FREE_FORM_COMMENT_1= RULE_FREE_FORM_COMMENT
            	    {
            	    this_FREE_FORM_COMMENT_1=(Token)match(input,RULE_FREE_FORM_COMMENT,FOLLOW_RULE_FREE_FORM_COMMENT_in_ruleNewSpell15407); 
            	     
            	        newLeafNode(this_FREE_FORM_COMMENT_1, grammarAccess.getNewSpellAccess().getFREE_FORM_COMMENTTerminalRuleCall_1()); 
            	        

            	    }
            	    break;

            	default :
            	    break loop60;
                }
            } while (true);

            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6424:3: ( (lv_mods_2_0= ruleSpellMods ) )*
            loop61:
            do {
                int alt61=2;
                int LA61_0 = input.LA(1);

                if ( (LA61_0==36||LA61_0==48||(LA61_0>=50 && LA61_0<=51)||LA61_0==54||LA61_0==89||LA61_0==167||(LA61_0>=255 && LA61_0<=268)) ) {
                    alt61=1;
                }


                switch (alt61) {
            	case 1 :
            	    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6425:1: (lv_mods_2_0= ruleSpellMods )
            	    {
            	    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6425:1: (lv_mods_2_0= ruleSpellMods )
            	    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6426:3: lv_mods_2_0= ruleSpellMods
            	    {
            	     
            	    	        newCompositeNode(grammarAccess.getNewSpellAccess().getModsSpellModsParserRuleCall_2_0()); 
            	    	    
            	    pushFollow(FOLLOW_ruleSpellMods_in_ruleNewSpell15429);
            	    lv_mods_2_0=ruleSpellMods();

            	    state._fsp--;


            	    	        if (current==null) {
            	    	            current = createModelElementForParent(grammarAccess.getNewSpellRule());
            	    	        }
            	           		add(
            	           			current, 
            	           			"mods",
            	            		lv_mods_2_0, 
            	            		"SpellMods");
            	    	        afterParserOrEnumRuleCall();
            	    	    

            	    }


            	    }
            	    break;

            	default :
            	    break loop61;
                }
            } while (true);

            otherlv_3=(Token)match(input,15,FOLLOW_15_in_ruleNewSpell15442); 

                	newLeafNode(otherlv_3, grammarAccess.getNewSpellAccess().getEndKeyword_3());
                

            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleNewSpell"


    // $ANTLR start "entryRuleSpellMods"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6454:1: entryRuleSpellMods returns [EObject current=null] : iv_ruleSpellMods= ruleSpellMods EOF ;
    public final EObject entryRuleSpellMods() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleSpellMods = null;


        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6455:2: (iv_ruleSpellMods= ruleSpellMods EOF )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6456:2: iv_ruleSpellMods= ruleSpellMods EOF
            {
             newCompositeNode(grammarAccess.getSpellModsRule()); 
            pushFollow(FOLLOW_ruleSpellMods_in_entryRuleSpellMods15478);
            iv_ruleSpellMods=ruleSpellMods();

            state._fsp--;

             current =iv_ruleSpellMods; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleSpellMods15488); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleSpellMods"


    // $ANTLR start "ruleSpellMods"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6463:1: ruleSpellMods returns [EObject current=null] : (this_SpellPattern1_0= ruleSpellPattern1 | this_SpellPattern2_1= ruleSpellPattern2 | this_SpellPattern3_2= ruleSpellPattern3 | this_SpellPattern4_3= ruleSpellPattern4 | this_SpellPattern5_4= ruleSpellPattern5 ) ;
    public final EObject ruleSpellMods() throws RecognitionException {
        EObject current = null;

        EObject this_SpellPattern1_0 = null;

        EObject this_SpellPattern2_1 = null;

        EObject this_SpellPattern3_2 = null;

        EObject this_SpellPattern4_3 = null;

        EObject this_SpellPattern5_4 = null;


         enterRule(); 
            
        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6466:28: ( (this_SpellPattern1_0= ruleSpellPattern1 | this_SpellPattern2_1= ruleSpellPattern2 | this_SpellPattern3_2= ruleSpellPattern3 | this_SpellPattern4_3= ruleSpellPattern4 | this_SpellPattern5_4= ruleSpellPattern5 ) )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6467:1: (this_SpellPattern1_0= ruleSpellPattern1 | this_SpellPattern2_1= ruleSpellPattern2 | this_SpellPattern3_2= ruleSpellPattern3 | this_SpellPattern4_3= ruleSpellPattern4 | this_SpellPattern5_4= ruleSpellPattern5 )
            {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6467:1: (this_SpellPattern1_0= ruleSpellPattern1 | this_SpellPattern2_1= ruleSpellPattern2 | this_SpellPattern3_2= ruleSpellPattern3 | this_SpellPattern4_3= ruleSpellPattern4 | this_SpellPattern5_4= ruleSpellPattern5 )
            int alt62=5;
            switch ( input.LA(1) ) {
            case 36:
            case 89:
                {
                alt62=1;
                }
                break;
            case 48:
            case 50:
            case 51:
            case 54:
            case 255:
            case 256:
            case 257:
            case 258:
            case 259:
            case 260:
            case 261:
            case 262:
            case 263:
            case 264:
                {
                alt62=2;
                }
                break;
            case 265:
            case 266:
                {
                alt62=3;
                }
                break;
            case 167:
                {
                alt62=4;
                }
                break;
            case 267:
            case 268:
                {
                alt62=5;
                }
                break;
            default:
                NoViableAltException nvae =
                    new NoViableAltException("", 62, 0, input);

                throw nvae;
            }

            switch (alt62) {
                case 1 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6468:5: this_SpellPattern1_0= ruleSpellPattern1
                    {
                     
                            newCompositeNode(grammarAccess.getSpellModsAccess().getSpellPattern1ParserRuleCall_0()); 
                        
                    pushFollow(FOLLOW_ruleSpellPattern1_in_ruleSpellMods15535);
                    this_SpellPattern1_0=ruleSpellPattern1();

                    state._fsp--;

                     
                            current = this_SpellPattern1_0; 
                            afterParserOrEnumRuleCall();
                        

                    }
                    break;
                case 2 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6478:5: this_SpellPattern2_1= ruleSpellPattern2
                    {
                     
                            newCompositeNode(grammarAccess.getSpellModsAccess().getSpellPattern2ParserRuleCall_1()); 
                        
                    pushFollow(FOLLOW_ruleSpellPattern2_in_ruleSpellMods15562);
                    this_SpellPattern2_1=ruleSpellPattern2();

                    state._fsp--;

                     
                            current = this_SpellPattern2_1; 
                            afterParserOrEnumRuleCall();
                        

                    }
                    break;
                case 3 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6488:5: this_SpellPattern3_2= ruleSpellPattern3
                    {
                     
                            newCompositeNode(grammarAccess.getSpellModsAccess().getSpellPattern3ParserRuleCall_2()); 
                        
                    pushFollow(FOLLOW_ruleSpellPattern3_in_ruleSpellMods15589);
                    this_SpellPattern3_2=ruleSpellPattern3();

                    state._fsp--;

                     
                            current = this_SpellPattern3_2; 
                            afterParserOrEnumRuleCall();
                        

                    }
                    break;
                case 4 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6498:5: this_SpellPattern4_3= ruleSpellPattern4
                    {
                     
                            newCompositeNode(grammarAccess.getSpellModsAccess().getSpellPattern4ParserRuleCall_3()); 
                        
                    pushFollow(FOLLOW_ruleSpellPattern4_in_ruleSpellMods15616);
                    this_SpellPattern4_3=ruleSpellPattern4();

                    state._fsp--;

                     
                            current = this_SpellPattern4_3; 
                            afterParserOrEnumRuleCall();
                        

                    }
                    break;
                case 5 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6508:5: this_SpellPattern5_4= ruleSpellPattern5
                    {
                     
                            newCompositeNode(grammarAccess.getSpellModsAccess().getSpellPattern5ParserRuleCall_4()); 
                        
                    pushFollow(FOLLOW_ruleSpellPattern5_in_ruleSpellMods15643);
                    this_SpellPattern5_4=ruleSpellPattern5();

                    state._fsp--;

                     
                            current = this_SpellPattern5_4; 
                            afterParserOrEnumRuleCall();
                        

                    }
                    break;

            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleSpellMods"


    // $ANTLR start "entryRuleSpellPattern1"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6524:1: entryRuleSpellPattern1 returns [EObject current=null] : iv_ruleSpellPattern1= ruleSpellPattern1 EOF ;
    public final EObject entryRuleSpellPattern1() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleSpellPattern1 = null;


        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6525:2: (iv_ruleSpellPattern1= ruleSpellPattern1 EOF )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6526:2: iv_ruleSpellPattern1= ruleSpellPattern1 EOF
            {
             newCompositeNode(grammarAccess.getSpellPattern1Rule()); 
            pushFollow(FOLLOW_ruleSpellPattern1_in_entryRuleSpellPattern115678);
            iv_ruleSpellPattern1=ruleSpellPattern1();

            state._fsp--;

             current =iv_ruleSpellPattern1; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleSpellPattern115688); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleSpellPattern1"


    // $ANTLR start "ruleSpellPattern1"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6533:1: ruleSpellPattern1 returns [EObject current=null] : (this_SpellInst1_0= ruleSpellInst1 ( (lv_value_1_0= RULE_STRING ) ) (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )* ) ;
    public final EObject ruleSpellPattern1() throws RecognitionException {
        EObject current = null;

        Token lv_value_1_0=null;
        Token this_FREE_FORM_COMMENT_2=null;
        EObject this_SpellInst1_0 = null;


         enterRule(); 
            
        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6536:28: ( (this_SpellInst1_0= ruleSpellInst1 ( (lv_value_1_0= RULE_STRING ) ) (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )* ) )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6537:1: (this_SpellInst1_0= ruleSpellInst1 ( (lv_value_1_0= RULE_STRING ) ) (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )* )
            {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6537:1: (this_SpellInst1_0= ruleSpellInst1 ( (lv_value_1_0= RULE_STRING ) ) (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )* )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6538:5: this_SpellInst1_0= ruleSpellInst1 ( (lv_value_1_0= RULE_STRING ) ) (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )*
            {
             
                    newCompositeNode(grammarAccess.getSpellPattern1Access().getSpellInst1ParserRuleCall_0()); 
                
            pushFollow(FOLLOW_ruleSpellInst1_in_ruleSpellPattern115735);
            this_SpellInst1_0=ruleSpellInst1();

            state._fsp--;

             
                    current = this_SpellInst1_0; 
                    afterParserOrEnumRuleCall();
                
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6546:1: ( (lv_value_1_0= RULE_STRING ) )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6547:1: (lv_value_1_0= RULE_STRING )
            {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6547:1: (lv_value_1_0= RULE_STRING )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6548:3: lv_value_1_0= RULE_STRING
            {
            lv_value_1_0=(Token)match(input,RULE_STRING,FOLLOW_RULE_STRING_in_ruleSpellPattern115751); 

            			newLeafNode(lv_value_1_0, grammarAccess.getSpellPattern1Access().getValueSTRINGTerminalRuleCall_1_0()); 
            		

            	        if (current==null) {
            	            current = createModelElement(grammarAccess.getSpellPattern1Rule());
            	        }
                   		setWithLastConsumed(
                   			current, 
                   			"value",
                    		lv_value_1_0, 
                    		"STRING");
            	    

            }


            }

            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6564:2: (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )*
            loop63:
            do {
                int alt63=2;
                int LA63_0 = input.LA(1);

                if ( (LA63_0==RULE_FREE_FORM_COMMENT) ) {
                    alt63=1;
                }


                switch (alt63) {
            	case 1 :
            	    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6564:3: this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT
            	    {
            	    this_FREE_FORM_COMMENT_2=(Token)match(input,RULE_FREE_FORM_COMMENT,FOLLOW_RULE_FREE_FORM_COMMENT_in_ruleSpellPattern115768); 
            	     
            	        newLeafNode(this_FREE_FORM_COMMENT_2, grammarAccess.getSpellPattern1Access().getFREE_FORM_COMMENTTerminalRuleCall_2()); 
            	        

            	    }
            	    break;

            	default :
            	    break loop63;
                }
            } while (true);


            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleSpellPattern1"


    // $ANTLR start "entryRuleSpellPattern2"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6576:1: entryRuleSpellPattern2 returns [EObject current=null] : iv_ruleSpellPattern2= ruleSpellPattern2 EOF ;
    public final EObject entryRuleSpellPattern2() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleSpellPattern2 = null;


        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6577:2: (iv_ruleSpellPattern2= ruleSpellPattern2 EOF )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6578:2: iv_ruleSpellPattern2= ruleSpellPattern2 EOF
            {
             newCompositeNode(grammarAccess.getSpellPattern2Rule()); 
            pushFollow(FOLLOW_ruleSpellPattern2_in_entryRuleSpellPattern215805);
            iv_ruleSpellPattern2=ruleSpellPattern2();

            state._fsp--;

             current =iv_ruleSpellPattern2; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleSpellPattern215815); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleSpellPattern2"


    // $ANTLR start "ruleSpellPattern2"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6585:1: ruleSpellPattern2 returns [EObject current=null] : (this_SpellInst2_0= ruleSpellInst2 ( (lv_value_1_0= RULE_INT ) ) (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )* ) ;
    public final EObject ruleSpellPattern2() throws RecognitionException {
        EObject current = null;

        Token lv_value_1_0=null;
        Token this_FREE_FORM_COMMENT_2=null;
        EObject this_SpellInst2_0 = null;


         enterRule(); 
            
        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6588:28: ( (this_SpellInst2_0= ruleSpellInst2 ( (lv_value_1_0= RULE_INT ) ) (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )* ) )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6589:1: (this_SpellInst2_0= ruleSpellInst2 ( (lv_value_1_0= RULE_INT ) ) (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )* )
            {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6589:1: (this_SpellInst2_0= ruleSpellInst2 ( (lv_value_1_0= RULE_INT ) ) (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )* )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6590:5: this_SpellInst2_0= ruleSpellInst2 ( (lv_value_1_0= RULE_INT ) ) (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )*
            {
             
                    newCompositeNode(grammarAccess.getSpellPattern2Access().getSpellInst2ParserRuleCall_0()); 
                
            pushFollow(FOLLOW_ruleSpellInst2_in_ruleSpellPattern215862);
            this_SpellInst2_0=ruleSpellInst2();

            state._fsp--;

             
                    current = this_SpellInst2_0; 
                    afterParserOrEnumRuleCall();
                
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6598:1: ( (lv_value_1_0= RULE_INT ) )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6599:1: (lv_value_1_0= RULE_INT )
            {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6599:1: (lv_value_1_0= RULE_INT )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6600:3: lv_value_1_0= RULE_INT
            {
            lv_value_1_0=(Token)match(input,RULE_INT,FOLLOW_RULE_INT_in_ruleSpellPattern215878); 

            			newLeafNode(lv_value_1_0, grammarAccess.getSpellPattern2Access().getValueINTTerminalRuleCall_1_0()); 
            		

            	        if (current==null) {
            	            current = createModelElement(grammarAccess.getSpellPattern2Rule());
            	        }
                   		setWithLastConsumed(
                   			current, 
                   			"value",
                    		lv_value_1_0, 
                    		"INT");
            	    

            }


            }

            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6616:2: (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )*
            loop64:
            do {
                int alt64=2;
                int LA64_0 = input.LA(1);

                if ( (LA64_0==RULE_FREE_FORM_COMMENT) ) {
                    alt64=1;
                }


                switch (alt64) {
            	case 1 :
            	    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6616:3: this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT
            	    {
            	    this_FREE_FORM_COMMENT_2=(Token)match(input,RULE_FREE_FORM_COMMENT,FOLLOW_RULE_FREE_FORM_COMMENT_in_ruleSpellPattern215895); 
            	     
            	        newLeafNode(this_FREE_FORM_COMMENT_2, grammarAccess.getSpellPattern2Access().getFREE_FORM_COMMENTTerminalRuleCall_2()); 
            	        

            	    }
            	    break;

            	default :
            	    break loop64;
                }
            } while (true);


            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleSpellPattern2"


    // $ANTLR start "entryRuleSpellPattern3"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6628:1: entryRuleSpellPattern3 returns [EObject current=null] : iv_ruleSpellPattern3= ruleSpellPattern3 EOF ;
    public final EObject entryRuleSpellPattern3() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleSpellPattern3 = null;


        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6629:2: (iv_ruleSpellPattern3= ruleSpellPattern3 EOF )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6630:2: iv_ruleSpellPattern3= ruleSpellPattern3 EOF
            {
             newCompositeNode(grammarAccess.getSpellPattern3Rule()); 
            pushFollow(FOLLOW_ruleSpellPattern3_in_entryRuleSpellPattern315932);
            iv_ruleSpellPattern3=ruleSpellPattern3();

            state._fsp--;

             current =iv_ruleSpellPattern3; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleSpellPattern315942); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleSpellPattern3"


    // $ANTLR start "ruleSpellPattern3"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6637:1: ruleSpellPattern3 returns [EObject current=null] : (this_SpellInst3_0= ruleSpellInst3 ( (lv_value1_1_0= RULE_INT ) ) ( (lv_value2_2_0= RULE_INT ) ) (this_FREE_FORM_COMMENT_3= RULE_FREE_FORM_COMMENT )* ) ;
    public final EObject ruleSpellPattern3() throws RecognitionException {
        EObject current = null;

        Token lv_value1_1_0=null;
        Token lv_value2_2_0=null;
        Token this_FREE_FORM_COMMENT_3=null;
        EObject this_SpellInst3_0 = null;


         enterRule(); 
            
        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6640:28: ( (this_SpellInst3_0= ruleSpellInst3 ( (lv_value1_1_0= RULE_INT ) ) ( (lv_value2_2_0= RULE_INT ) ) (this_FREE_FORM_COMMENT_3= RULE_FREE_FORM_COMMENT )* ) )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6641:1: (this_SpellInst3_0= ruleSpellInst3 ( (lv_value1_1_0= RULE_INT ) ) ( (lv_value2_2_0= RULE_INT ) ) (this_FREE_FORM_COMMENT_3= RULE_FREE_FORM_COMMENT )* )
            {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6641:1: (this_SpellInst3_0= ruleSpellInst3 ( (lv_value1_1_0= RULE_INT ) ) ( (lv_value2_2_0= RULE_INT ) ) (this_FREE_FORM_COMMENT_3= RULE_FREE_FORM_COMMENT )* )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6642:5: this_SpellInst3_0= ruleSpellInst3 ( (lv_value1_1_0= RULE_INT ) ) ( (lv_value2_2_0= RULE_INT ) ) (this_FREE_FORM_COMMENT_3= RULE_FREE_FORM_COMMENT )*
            {
             
                    newCompositeNode(grammarAccess.getSpellPattern3Access().getSpellInst3ParserRuleCall_0()); 
                
            pushFollow(FOLLOW_ruleSpellInst3_in_ruleSpellPattern315989);
            this_SpellInst3_0=ruleSpellInst3();

            state._fsp--;

             
                    current = this_SpellInst3_0; 
                    afterParserOrEnumRuleCall();
                
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6650:1: ( (lv_value1_1_0= RULE_INT ) )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6651:1: (lv_value1_1_0= RULE_INT )
            {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6651:1: (lv_value1_1_0= RULE_INT )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6652:3: lv_value1_1_0= RULE_INT
            {
            lv_value1_1_0=(Token)match(input,RULE_INT,FOLLOW_RULE_INT_in_ruleSpellPattern316005); 

            			newLeafNode(lv_value1_1_0, grammarAccess.getSpellPattern3Access().getValue1INTTerminalRuleCall_1_0()); 
            		

            	        if (current==null) {
            	            current = createModelElement(grammarAccess.getSpellPattern3Rule());
            	        }
                   		setWithLastConsumed(
                   			current, 
                   			"value1",
                    		lv_value1_1_0, 
                    		"INT");
            	    

            }


            }

            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6668:2: ( (lv_value2_2_0= RULE_INT ) )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6669:1: (lv_value2_2_0= RULE_INT )
            {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6669:1: (lv_value2_2_0= RULE_INT )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6670:3: lv_value2_2_0= RULE_INT
            {
            lv_value2_2_0=(Token)match(input,RULE_INT,FOLLOW_RULE_INT_in_ruleSpellPattern316027); 

            			newLeafNode(lv_value2_2_0, grammarAccess.getSpellPattern3Access().getValue2INTTerminalRuleCall_2_0()); 
            		

            	        if (current==null) {
            	            current = createModelElement(grammarAccess.getSpellPattern3Rule());
            	        }
                   		setWithLastConsumed(
                   			current, 
                   			"value2",
                    		lv_value2_2_0, 
                    		"INT");
            	    

            }


            }

            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6686:2: (this_FREE_FORM_COMMENT_3= RULE_FREE_FORM_COMMENT )*
            loop65:
            do {
                int alt65=2;
                int LA65_0 = input.LA(1);

                if ( (LA65_0==RULE_FREE_FORM_COMMENT) ) {
                    alt65=1;
                }


                switch (alt65) {
            	case 1 :
            	    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6686:3: this_FREE_FORM_COMMENT_3= RULE_FREE_FORM_COMMENT
            	    {
            	    this_FREE_FORM_COMMENT_3=(Token)match(input,RULE_FREE_FORM_COMMENT,FOLLOW_RULE_FREE_FORM_COMMENT_in_ruleSpellPattern316044); 
            	     
            	        newLeafNode(this_FREE_FORM_COMMENT_3, grammarAccess.getSpellPattern3Access().getFREE_FORM_COMMENTTerminalRuleCall_3()); 
            	        

            	    }
            	    break;

            	default :
            	    break loop65;
                }
            } while (true);


            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleSpellPattern3"


    // $ANTLR start "entryRuleSpellPattern4"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6698:1: entryRuleSpellPattern4 returns [EObject current=null] : iv_ruleSpellPattern4= ruleSpellPattern4 EOF ;
    public final EObject entryRuleSpellPattern4() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleSpellPattern4 = null;


        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6699:2: (iv_ruleSpellPattern4= ruleSpellPattern4 EOF )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6700:2: iv_ruleSpellPattern4= ruleSpellPattern4 EOF
            {
             newCompositeNode(grammarAccess.getSpellPattern4Rule()); 
            pushFollow(FOLLOW_ruleSpellPattern4_in_entryRuleSpellPattern416081);
            iv_ruleSpellPattern4=ruleSpellPattern4();

            state._fsp--;

             current =iv_ruleSpellPattern4; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleSpellPattern416091); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleSpellPattern4"


    // $ANTLR start "ruleSpellPattern4"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6707:1: ruleSpellPattern4 returns [EObject current=null] : (this_SpellInst4_0= ruleSpellInst4 (this_FREE_FORM_COMMENT_1= RULE_FREE_FORM_COMMENT )* ) ;
    public final EObject ruleSpellPattern4() throws RecognitionException {
        EObject current = null;

        Token this_FREE_FORM_COMMENT_1=null;
        EObject this_SpellInst4_0 = null;


         enterRule(); 
            
        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6710:28: ( (this_SpellInst4_0= ruleSpellInst4 (this_FREE_FORM_COMMENT_1= RULE_FREE_FORM_COMMENT )* ) )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6711:1: (this_SpellInst4_0= ruleSpellInst4 (this_FREE_FORM_COMMENT_1= RULE_FREE_FORM_COMMENT )* )
            {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6711:1: (this_SpellInst4_0= ruleSpellInst4 (this_FREE_FORM_COMMENT_1= RULE_FREE_FORM_COMMENT )* )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6712:5: this_SpellInst4_0= ruleSpellInst4 (this_FREE_FORM_COMMENT_1= RULE_FREE_FORM_COMMENT )*
            {
             
                    newCompositeNode(grammarAccess.getSpellPattern4Access().getSpellInst4ParserRuleCall_0()); 
                
            pushFollow(FOLLOW_ruleSpellInst4_in_ruleSpellPattern416138);
            this_SpellInst4_0=ruleSpellInst4();

            state._fsp--;

             
                    current = this_SpellInst4_0; 
                    afterParserOrEnumRuleCall();
                
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6720:1: (this_FREE_FORM_COMMENT_1= RULE_FREE_FORM_COMMENT )*
            loop66:
            do {
                int alt66=2;
                int LA66_0 = input.LA(1);

                if ( (LA66_0==RULE_FREE_FORM_COMMENT) ) {
                    alt66=1;
                }


                switch (alt66) {
            	case 1 :
            	    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6720:2: this_FREE_FORM_COMMENT_1= RULE_FREE_FORM_COMMENT
            	    {
            	    this_FREE_FORM_COMMENT_1=(Token)match(input,RULE_FREE_FORM_COMMENT,FOLLOW_RULE_FREE_FORM_COMMENT_in_ruleSpellPattern416149); 
            	     
            	        newLeafNode(this_FREE_FORM_COMMENT_1, grammarAccess.getSpellPattern4Access().getFREE_FORM_COMMENTTerminalRuleCall_1()); 
            	        

            	    }
            	    break;

            	default :
            	    break loop66;
                }
            } while (true);


            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleSpellPattern4"


    // $ANTLR start "entryRuleSpellPattern5"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6732:1: entryRuleSpellPattern5 returns [EObject current=null] : iv_ruleSpellPattern5= ruleSpellPattern5 EOF ;
    public final EObject entryRuleSpellPattern5() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleSpellPattern5 = null;


        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6733:2: (iv_ruleSpellPattern5= ruleSpellPattern5 EOF )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6734:2: iv_ruleSpellPattern5= ruleSpellPattern5 EOF
            {
             newCompositeNode(grammarAccess.getSpellPattern5Rule()); 
            pushFollow(FOLLOW_ruleSpellPattern5_in_entryRuleSpellPattern516186);
            iv_ruleSpellPattern5=ruleSpellPattern5();

            state._fsp--;

             current =iv_ruleSpellPattern5; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleSpellPattern516196); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleSpellPattern5"


    // $ANTLR start "ruleSpellPattern5"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6741:1: ruleSpellPattern5 returns [EObject current=null] : (this_SpellInst5_0= ruleSpellInst5 ( ( (lv_value1_1_0= RULE_STRING ) ) | ( (lv_value2_2_0= RULE_INT ) ) ) (this_FREE_FORM_COMMENT_3= RULE_FREE_FORM_COMMENT )* ) ;
    public final EObject ruleSpellPattern5() throws RecognitionException {
        EObject current = null;

        Token lv_value1_1_0=null;
        Token lv_value2_2_0=null;
        Token this_FREE_FORM_COMMENT_3=null;
        EObject this_SpellInst5_0 = null;


         enterRule(); 
            
        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6744:28: ( (this_SpellInst5_0= ruleSpellInst5 ( ( (lv_value1_1_0= RULE_STRING ) ) | ( (lv_value2_2_0= RULE_INT ) ) ) (this_FREE_FORM_COMMENT_3= RULE_FREE_FORM_COMMENT )* ) )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6745:1: (this_SpellInst5_0= ruleSpellInst5 ( ( (lv_value1_1_0= RULE_STRING ) ) | ( (lv_value2_2_0= RULE_INT ) ) ) (this_FREE_FORM_COMMENT_3= RULE_FREE_FORM_COMMENT )* )
            {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6745:1: (this_SpellInst5_0= ruleSpellInst5 ( ( (lv_value1_1_0= RULE_STRING ) ) | ( (lv_value2_2_0= RULE_INT ) ) ) (this_FREE_FORM_COMMENT_3= RULE_FREE_FORM_COMMENT )* )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6746:5: this_SpellInst5_0= ruleSpellInst5 ( ( (lv_value1_1_0= RULE_STRING ) ) | ( (lv_value2_2_0= RULE_INT ) ) ) (this_FREE_FORM_COMMENT_3= RULE_FREE_FORM_COMMENT )*
            {
             
                    newCompositeNode(grammarAccess.getSpellPattern5Access().getSpellInst5ParserRuleCall_0()); 
                
            pushFollow(FOLLOW_ruleSpellInst5_in_ruleSpellPattern516243);
            this_SpellInst5_0=ruleSpellInst5();

            state._fsp--;

             
                    current = this_SpellInst5_0; 
                    afterParserOrEnumRuleCall();
                
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6754:1: ( ( (lv_value1_1_0= RULE_STRING ) ) | ( (lv_value2_2_0= RULE_INT ) ) )
            int alt67=2;
            int LA67_0 = input.LA(1);

            if ( (LA67_0==RULE_STRING) ) {
                alt67=1;
            }
            else if ( (LA67_0==RULE_INT) ) {
                alt67=2;
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("", 67, 0, input);

                throw nvae;
            }
            switch (alt67) {
                case 1 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6754:2: ( (lv_value1_1_0= RULE_STRING ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6754:2: ( (lv_value1_1_0= RULE_STRING ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6755:1: (lv_value1_1_0= RULE_STRING )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6755:1: (lv_value1_1_0= RULE_STRING )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6756:3: lv_value1_1_0= RULE_STRING
                    {
                    lv_value1_1_0=(Token)match(input,RULE_STRING,FOLLOW_RULE_STRING_in_ruleSpellPattern516260); 

                    			newLeafNode(lv_value1_1_0, grammarAccess.getSpellPattern5Access().getValue1STRINGTerminalRuleCall_1_0_0()); 
                    		

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getSpellPattern5Rule());
                    	        }
                           		setWithLastConsumed(
                           			current, 
                           			"value1",
                            		lv_value1_1_0, 
                            		"STRING");
                    	    

                    }


                    }


                    }
                    break;
                case 2 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6773:6: ( (lv_value2_2_0= RULE_INT ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6773:6: ( (lv_value2_2_0= RULE_INT ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6774:1: (lv_value2_2_0= RULE_INT )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6774:1: (lv_value2_2_0= RULE_INT )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6775:3: lv_value2_2_0= RULE_INT
                    {
                    lv_value2_2_0=(Token)match(input,RULE_INT,FOLLOW_RULE_INT_in_ruleSpellPattern516288); 

                    			newLeafNode(lv_value2_2_0, grammarAccess.getSpellPattern5Access().getValue2INTTerminalRuleCall_1_1_0()); 
                    		

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getSpellPattern5Rule());
                    	        }
                           		setWithLastConsumed(
                           			current, 
                           			"value2",
                            		lv_value2_2_0, 
                            		"INT");
                    	    

                    }


                    }


                    }
                    break;

            }

            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6791:3: (this_FREE_FORM_COMMENT_3= RULE_FREE_FORM_COMMENT )*
            loop68:
            do {
                int alt68=2;
                int LA68_0 = input.LA(1);

                if ( (LA68_0==RULE_FREE_FORM_COMMENT) ) {
                    alt68=1;
                }


                switch (alt68) {
            	case 1 :
            	    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6791:4: this_FREE_FORM_COMMENT_3= RULE_FREE_FORM_COMMENT
            	    {
            	    this_FREE_FORM_COMMENT_3=(Token)match(input,RULE_FREE_FORM_COMMENT,FOLLOW_RULE_FREE_FORM_COMMENT_in_ruleSpellPattern516306); 
            	     
            	        newLeafNode(this_FREE_FORM_COMMENT_3, grammarAccess.getSpellPattern5Access().getFREE_FORM_COMMENTTerminalRuleCall_2()); 
            	        

            	    }
            	    break;

            	default :
            	    break loop68;
                }
            } while (true);


            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleSpellPattern5"


    // $ANTLR start "entryRuleSpellInst1"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6803:1: entryRuleSpellInst1 returns [EObject current=null] : iv_ruleSpellInst1= ruleSpellInst1 EOF ;
    public final EObject entryRuleSpellInst1() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleSpellInst1 = null;


        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6804:2: (iv_ruleSpellInst1= ruleSpellInst1 EOF )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6805:2: iv_ruleSpellInst1= ruleSpellInst1 EOF
            {
             newCompositeNode(grammarAccess.getSpellInst1Rule()); 
            pushFollow(FOLLOW_ruleSpellInst1_in_entryRuleSpellInst116343);
            iv_ruleSpellInst1=ruleSpellInst1();

            state._fsp--;

             current =iv_ruleSpellInst1; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleSpellInst116353); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleSpellInst1"


    // $ANTLR start "ruleSpellInst1"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6812:1: ruleSpellInst1 returns [EObject current=null] : ( ( (lv_name_0_0= '#name' ) ) | ( (lv_descr_1_0= '#descr' ) ) ) ;
    public final EObject ruleSpellInst1() throws RecognitionException {
        EObject current = null;

        Token lv_name_0_0=null;
        Token lv_descr_1_0=null;

         enterRule(); 
            
        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6815:28: ( ( ( (lv_name_0_0= '#name' ) ) | ( (lv_descr_1_0= '#descr' ) ) ) )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6816:1: ( ( (lv_name_0_0= '#name' ) ) | ( (lv_descr_1_0= '#descr' ) ) )
            {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6816:1: ( ( (lv_name_0_0= '#name' ) ) | ( (lv_descr_1_0= '#descr' ) ) )
            int alt69=2;
            int LA69_0 = input.LA(1);

            if ( (LA69_0==36) ) {
                alt69=1;
            }
            else if ( (LA69_0==89) ) {
                alt69=2;
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("", 69, 0, input);

                throw nvae;
            }
            switch (alt69) {
                case 1 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6816:2: ( (lv_name_0_0= '#name' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6816:2: ( (lv_name_0_0= '#name' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6817:1: (lv_name_0_0= '#name' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6817:1: (lv_name_0_0= '#name' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6818:3: lv_name_0_0= '#name'
                    {
                    lv_name_0_0=(Token)match(input,36,FOLLOW_36_in_ruleSpellInst116396); 

                            newLeafNode(lv_name_0_0, grammarAccess.getSpellInst1Access().getNameNameKeyword_0_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getSpellInst1Rule());
                    	        }
                           		setWithLastConsumed(current, "name", true, "#name");
                    	    

                    }


                    }


                    }
                    break;
                case 2 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6832:6: ( (lv_descr_1_0= '#descr' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6832:6: ( (lv_descr_1_0= '#descr' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6833:1: (lv_descr_1_0= '#descr' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6833:1: (lv_descr_1_0= '#descr' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6834:3: lv_descr_1_0= '#descr'
                    {
                    lv_descr_1_0=(Token)match(input,89,FOLLOW_89_in_ruleSpellInst116433); 

                            newLeafNode(lv_descr_1_0, grammarAccess.getSpellInst1Access().getDescrDescrKeyword_1_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getSpellInst1Rule());
                    	        }
                           		setWithLastConsumed(current, "descr", true, "#descr");
                    	    

                    }


                    }


                    }
                    break;

            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleSpellInst1"


    // $ANTLR start "entryRuleSpellInst2"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6855:1: entryRuleSpellInst2 returns [EObject current=null] : iv_ruleSpellInst2= ruleSpellInst2 EOF ;
    public final EObject entryRuleSpellInst2() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleSpellInst2 = null;


        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6856:2: (iv_ruleSpellInst2= ruleSpellInst2 EOF )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6857:2: iv_ruleSpellInst2= ruleSpellInst2 EOF
            {
             newCompositeNode(grammarAccess.getSpellInst2Rule()); 
            pushFollow(FOLLOW_ruleSpellInst2_in_entryRuleSpellInst216482);
            iv_ruleSpellInst2=ruleSpellInst2();

            state._fsp--;

             current =iv_ruleSpellInst2; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleSpellInst216492); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleSpellInst2"


    // $ANTLR start "ruleSpellInst2"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6864:1: ruleSpellInst2 returns [EObject current=null] : ( ( (lv_school_0_0= '#school' ) ) | ( (lv_researchlevel_1_0= '#researchlevel' ) ) | ( (lv_aoe_2_0= '#aoe' ) ) | ( (lv_damage_3_0= '#damage' ) ) | ( (lv_effect_4_0= '#effect' ) ) | ( (lv_fatiguecost_5_0= '#fatiguecost' ) ) | ( (lv_flightspr_6_0= '#flightspr' ) ) | ( (lv_explspr_7_0= '#explspr' ) ) | ( (lv_nreff_8_0= '#nreff' ) ) | ( (lv_range_9_0= '#range' ) ) | ( (lv_precision_10_0= '#precision' ) ) | ( (lv_sound_11_0= '#sound' ) ) | ( (lv_spec_12_0= '#spec' ) ) | ( (lv_restricted_13_0= '#restricted' ) ) ) ;
    public final EObject ruleSpellInst2() throws RecognitionException {
        EObject current = null;

        Token lv_school_0_0=null;
        Token lv_researchlevel_1_0=null;
        Token lv_aoe_2_0=null;
        Token lv_damage_3_0=null;
        Token lv_effect_4_0=null;
        Token lv_fatiguecost_5_0=null;
        Token lv_flightspr_6_0=null;
        Token lv_explspr_7_0=null;
        Token lv_nreff_8_0=null;
        Token lv_range_9_0=null;
        Token lv_precision_10_0=null;
        Token lv_sound_11_0=null;
        Token lv_spec_12_0=null;
        Token lv_restricted_13_0=null;

         enterRule(); 
            
        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6867:28: ( ( ( (lv_school_0_0= '#school' ) ) | ( (lv_researchlevel_1_0= '#researchlevel' ) ) | ( (lv_aoe_2_0= '#aoe' ) ) | ( (lv_damage_3_0= '#damage' ) ) | ( (lv_effect_4_0= '#effect' ) ) | ( (lv_fatiguecost_5_0= '#fatiguecost' ) ) | ( (lv_flightspr_6_0= '#flightspr' ) ) | ( (lv_explspr_7_0= '#explspr' ) ) | ( (lv_nreff_8_0= '#nreff' ) ) | ( (lv_range_9_0= '#range' ) ) | ( (lv_precision_10_0= '#precision' ) ) | ( (lv_sound_11_0= '#sound' ) ) | ( (lv_spec_12_0= '#spec' ) ) | ( (lv_restricted_13_0= '#restricted' ) ) ) )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6868:1: ( ( (lv_school_0_0= '#school' ) ) | ( (lv_researchlevel_1_0= '#researchlevel' ) ) | ( (lv_aoe_2_0= '#aoe' ) ) | ( (lv_damage_3_0= '#damage' ) ) | ( (lv_effect_4_0= '#effect' ) ) | ( (lv_fatiguecost_5_0= '#fatiguecost' ) ) | ( (lv_flightspr_6_0= '#flightspr' ) ) | ( (lv_explspr_7_0= '#explspr' ) ) | ( (lv_nreff_8_0= '#nreff' ) ) | ( (lv_range_9_0= '#range' ) ) | ( (lv_precision_10_0= '#precision' ) ) | ( (lv_sound_11_0= '#sound' ) ) | ( (lv_spec_12_0= '#spec' ) ) | ( (lv_restricted_13_0= '#restricted' ) ) )
            {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6868:1: ( ( (lv_school_0_0= '#school' ) ) | ( (lv_researchlevel_1_0= '#researchlevel' ) ) | ( (lv_aoe_2_0= '#aoe' ) ) | ( (lv_damage_3_0= '#damage' ) ) | ( (lv_effect_4_0= '#effect' ) ) | ( (lv_fatiguecost_5_0= '#fatiguecost' ) ) | ( (lv_flightspr_6_0= '#flightspr' ) ) | ( (lv_explspr_7_0= '#explspr' ) ) | ( (lv_nreff_8_0= '#nreff' ) ) | ( (lv_range_9_0= '#range' ) ) | ( (lv_precision_10_0= '#precision' ) ) | ( (lv_sound_11_0= '#sound' ) ) | ( (lv_spec_12_0= '#spec' ) ) | ( (lv_restricted_13_0= '#restricted' ) ) )
            int alt70=14;
            switch ( input.LA(1) ) {
            case 255:
                {
                alt70=1;
                }
                break;
            case 256:
                {
                alt70=2;
                }
                break;
            case 51:
                {
                alt70=3;
                }
                break;
            case 257:
                {
                alt70=4;
                }
                break;
            case 258:
                {
                alt70=5;
                }
                break;
            case 259:
                {
                alt70=6;
                }
                break;
            case 260:
                {
                alt70=7;
                }
                break;
            case 54:
                {
                alt70=8;
                }
                break;
            case 261:
                {
                alt70=9;
                }
                break;
            case 48:
                {
                alt70=10;
                }
                break;
            case 262:
                {
                alt70=11;
                }
                break;
            case 50:
                {
                alt70=12;
                }
                break;
            case 263:
                {
                alt70=13;
                }
                break;
            case 264:
                {
                alt70=14;
                }
                break;
            default:
                NoViableAltException nvae =
                    new NoViableAltException("", 70, 0, input);

                throw nvae;
            }

            switch (alt70) {
                case 1 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6868:2: ( (lv_school_0_0= '#school' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6868:2: ( (lv_school_0_0= '#school' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6869:1: (lv_school_0_0= '#school' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6869:1: (lv_school_0_0= '#school' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6870:3: lv_school_0_0= '#school'
                    {
                    lv_school_0_0=(Token)match(input,255,FOLLOW_255_in_ruleSpellInst216535); 

                            newLeafNode(lv_school_0_0, grammarAccess.getSpellInst2Access().getSchoolSchoolKeyword_0_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getSpellInst2Rule());
                    	        }
                           		setWithLastConsumed(current, "school", true, "#school");
                    	    

                    }


                    }


                    }
                    break;
                case 2 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6884:6: ( (lv_researchlevel_1_0= '#researchlevel' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6884:6: ( (lv_researchlevel_1_0= '#researchlevel' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6885:1: (lv_researchlevel_1_0= '#researchlevel' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6885:1: (lv_researchlevel_1_0= '#researchlevel' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6886:3: lv_researchlevel_1_0= '#researchlevel'
                    {
                    lv_researchlevel_1_0=(Token)match(input,256,FOLLOW_256_in_ruleSpellInst216572); 

                            newLeafNode(lv_researchlevel_1_0, grammarAccess.getSpellInst2Access().getResearchlevelResearchlevelKeyword_1_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getSpellInst2Rule());
                    	        }
                           		setWithLastConsumed(current, "researchlevel", true, "#researchlevel");
                    	    

                    }


                    }


                    }
                    break;
                case 3 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6900:6: ( (lv_aoe_2_0= '#aoe' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6900:6: ( (lv_aoe_2_0= '#aoe' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6901:1: (lv_aoe_2_0= '#aoe' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6901:1: (lv_aoe_2_0= '#aoe' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6902:3: lv_aoe_2_0= '#aoe'
                    {
                    lv_aoe_2_0=(Token)match(input,51,FOLLOW_51_in_ruleSpellInst216609); 

                            newLeafNode(lv_aoe_2_0, grammarAccess.getSpellInst2Access().getAoeAoeKeyword_2_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getSpellInst2Rule());
                    	        }
                           		setWithLastConsumed(current, "aoe", true, "#aoe");
                    	    

                    }


                    }


                    }
                    break;
                case 4 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6916:6: ( (lv_damage_3_0= '#damage' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6916:6: ( (lv_damage_3_0= '#damage' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6917:1: (lv_damage_3_0= '#damage' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6917:1: (lv_damage_3_0= '#damage' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6918:3: lv_damage_3_0= '#damage'
                    {
                    lv_damage_3_0=(Token)match(input,257,FOLLOW_257_in_ruleSpellInst216646); 

                            newLeafNode(lv_damage_3_0, grammarAccess.getSpellInst2Access().getDamageDamageKeyword_3_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getSpellInst2Rule());
                    	        }
                           		setWithLastConsumed(current, "damage", true, "#damage");
                    	    

                    }


                    }


                    }
                    break;
                case 5 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6932:6: ( (lv_effect_4_0= '#effect' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6932:6: ( (lv_effect_4_0= '#effect' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6933:1: (lv_effect_4_0= '#effect' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6933:1: (lv_effect_4_0= '#effect' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6934:3: lv_effect_4_0= '#effect'
                    {
                    lv_effect_4_0=(Token)match(input,258,FOLLOW_258_in_ruleSpellInst216683); 

                            newLeafNode(lv_effect_4_0, grammarAccess.getSpellInst2Access().getEffectEffectKeyword_4_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getSpellInst2Rule());
                    	        }
                           		setWithLastConsumed(current, "effect", true, "#effect");
                    	    

                    }


                    }


                    }
                    break;
                case 6 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6948:6: ( (lv_fatiguecost_5_0= '#fatiguecost' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6948:6: ( (lv_fatiguecost_5_0= '#fatiguecost' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6949:1: (lv_fatiguecost_5_0= '#fatiguecost' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6949:1: (lv_fatiguecost_5_0= '#fatiguecost' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6950:3: lv_fatiguecost_5_0= '#fatiguecost'
                    {
                    lv_fatiguecost_5_0=(Token)match(input,259,FOLLOW_259_in_ruleSpellInst216720); 

                            newLeafNode(lv_fatiguecost_5_0, grammarAccess.getSpellInst2Access().getFatiguecostFatiguecostKeyword_5_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getSpellInst2Rule());
                    	        }
                           		setWithLastConsumed(current, "fatiguecost", true, "#fatiguecost");
                    	    

                    }


                    }


                    }
                    break;
                case 7 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6964:6: ( (lv_flightspr_6_0= '#flightspr' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6964:6: ( (lv_flightspr_6_0= '#flightspr' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6965:1: (lv_flightspr_6_0= '#flightspr' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6965:1: (lv_flightspr_6_0= '#flightspr' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6966:3: lv_flightspr_6_0= '#flightspr'
                    {
                    lv_flightspr_6_0=(Token)match(input,260,FOLLOW_260_in_ruleSpellInst216757); 

                            newLeafNode(lv_flightspr_6_0, grammarAccess.getSpellInst2Access().getFlightsprFlightsprKeyword_6_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getSpellInst2Rule());
                    	        }
                           		setWithLastConsumed(current, "flightspr", true, "#flightspr");
                    	    

                    }


                    }


                    }
                    break;
                case 8 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6980:6: ( (lv_explspr_7_0= '#explspr' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6980:6: ( (lv_explspr_7_0= '#explspr' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6981:1: (lv_explspr_7_0= '#explspr' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6981:1: (lv_explspr_7_0= '#explspr' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6982:3: lv_explspr_7_0= '#explspr'
                    {
                    lv_explspr_7_0=(Token)match(input,54,FOLLOW_54_in_ruleSpellInst216794); 

                            newLeafNode(lv_explspr_7_0, grammarAccess.getSpellInst2Access().getExplsprExplsprKeyword_7_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getSpellInst2Rule());
                    	        }
                           		setWithLastConsumed(current, "explspr", true, "#explspr");
                    	    

                    }


                    }


                    }
                    break;
                case 9 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6996:6: ( (lv_nreff_8_0= '#nreff' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6996:6: ( (lv_nreff_8_0= '#nreff' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6997:1: (lv_nreff_8_0= '#nreff' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6997:1: (lv_nreff_8_0= '#nreff' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:6998:3: lv_nreff_8_0= '#nreff'
                    {
                    lv_nreff_8_0=(Token)match(input,261,FOLLOW_261_in_ruleSpellInst216831); 

                            newLeafNode(lv_nreff_8_0, grammarAccess.getSpellInst2Access().getNreffNreffKeyword_8_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getSpellInst2Rule());
                    	        }
                           		setWithLastConsumed(current, "nreff", true, "#nreff");
                    	    

                    }


                    }


                    }
                    break;
                case 10 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7012:6: ( (lv_range_9_0= '#range' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7012:6: ( (lv_range_9_0= '#range' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7013:1: (lv_range_9_0= '#range' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7013:1: (lv_range_9_0= '#range' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7014:3: lv_range_9_0= '#range'
                    {
                    lv_range_9_0=(Token)match(input,48,FOLLOW_48_in_ruleSpellInst216868); 

                            newLeafNode(lv_range_9_0, grammarAccess.getSpellInst2Access().getRangeRangeKeyword_9_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getSpellInst2Rule());
                    	        }
                           		setWithLastConsumed(current, "range", true, "#range");
                    	    

                    }


                    }


                    }
                    break;
                case 11 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7028:6: ( (lv_precision_10_0= '#precision' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7028:6: ( (lv_precision_10_0= '#precision' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7029:1: (lv_precision_10_0= '#precision' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7029:1: (lv_precision_10_0= '#precision' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7030:3: lv_precision_10_0= '#precision'
                    {
                    lv_precision_10_0=(Token)match(input,262,FOLLOW_262_in_ruleSpellInst216905); 

                            newLeafNode(lv_precision_10_0, grammarAccess.getSpellInst2Access().getPrecisionPrecisionKeyword_10_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getSpellInst2Rule());
                    	        }
                           		setWithLastConsumed(current, "precision", true, "#precision");
                    	    

                    }


                    }


                    }
                    break;
                case 12 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7044:6: ( (lv_sound_11_0= '#sound' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7044:6: ( (lv_sound_11_0= '#sound' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7045:1: (lv_sound_11_0= '#sound' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7045:1: (lv_sound_11_0= '#sound' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7046:3: lv_sound_11_0= '#sound'
                    {
                    lv_sound_11_0=(Token)match(input,50,FOLLOW_50_in_ruleSpellInst216942); 

                            newLeafNode(lv_sound_11_0, grammarAccess.getSpellInst2Access().getSoundSoundKeyword_11_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getSpellInst2Rule());
                    	        }
                           		setWithLastConsumed(current, "sound", true, "#sound");
                    	    

                    }


                    }


                    }
                    break;
                case 13 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7060:6: ( (lv_spec_12_0= '#spec' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7060:6: ( (lv_spec_12_0= '#spec' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7061:1: (lv_spec_12_0= '#spec' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7061:1: (lv_spec_12_0= '#spec' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7062:3: lv_spec_12_0= '#spec'
                    {
                    lv_spec_12_0=(Token)match(input,263,FOLLOW_263_in_ruleSpellInst216979); 

                            newLeafNode(lv_spec_12_0, grammarAccess.getSpellInst2Access().getSpecSpecKeyword_12_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getSpellInst2Rule());
                    	        }
                           		setWithLastConsumed(current, "spec", true, "#spec");
                    	    

                    }


                    }


                    }
                    break;
                case 14 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7076:6: ( (lv_restricted_13_0= '#restricted' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7076:6: ( (lv_restricted_13_0= '#restricted' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7077:1: (lv_restricted_13_0= '#restricted' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7077:1: (lv_restricted_13_0= '#restricted' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7078:3: lv_restricted_13_0= '#restricted'
                    {
                    lv_restricted_13_0=(Token)match(input,264,FOLLOW_264_in_ruleSpellInst217016); 

                            newLeafNode(lv_restricted_13_0, grammarAccess.getSpellInst2Access().getRestrictedRestrictedKeyword_13_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getSpellInst2Rule());
                    	        }
                           		setWithLastConsumed(current, "restricted", true, "#restricted");
                    	    

                    }


                    }


                    }
                    break;

            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleSpellInst2"


    // $ANTLR start "entryRuleSpellInst3"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7099:1: entryRuleSpellInst3 returns [EObject current=null] : iv_ruleSpellInst3= ruleSpellInst3 EOF ;
    public final EObject entryRuleSpellInst3() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleSpellInst3 = null;


        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7100:2: (iv_ruleSpellInst3= ruleSpellInst3 EOF )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7101:2: iv_ruleSpellInst3= ruleSpellInst3 EOF
            {
             newCompositeNode(grammarAccess.getSpellInst3Rule()); 
            pushFollow(FOLLOW_ruleSpellInst3_in_entryRuleSpellInst317065);
            iv_ruleSpellInst3=ruleSpellInst3();

            state._fsp--;

             current =iv_ruleSpellInst3; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleSpellInst317075); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleSpellInst3"


    // $ANTLR start "ruleSpellInst3"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7108:1: ruleSpellInst3 returns [EObject current=null] : ( ( (lv_path_0_0= '#path' ) ) | ( (lv_pathlevel_1_0= '#pathlevel' ) ) ) ;
    public final EObject ruleSpellInst3() throws RecognitionException {
        EObject current = null;

        Token lv_path_0_0=null;
        Token lv_pathlevel_1_0=null;

         enterRule(); 
            
        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7111:28: ( ( ( (lv_path_0_0= '#path' ) ) | ( (lv_pathlevel_1_0= '#pathlevel' ) ) ) )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7112:1: ( ( (lv_path_0_0= '#path' ) ) | ( (lv_pathlevel_1_0= '#pathlevel' ) ) )
            {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7112:1: ( ( (lv_path_0_0= '#path' ) ) | ( (lv_pathlevel_1_0= '#pathlevel' ) ) )
            int alt71=2;
            int LA71_0 = input.LA(1);

            if ( (LA71_0==265) ) {
                alt71=1;
            }
            else if ( (LA71_0==266) ) {
                alt71=2;
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("", 71, 0, input);

                throw nvae;
            }
            switch (alt71) {
                case 1 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7112:2: ( (lv_path_0_0= '#path' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7112:2: ( (lv_path_0_0= '#path' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7113:1: (lv_path_0_0= '#path' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7113:1: (lv_path_0_0= '#path' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7114:3: lv_path_0_0= '#path'
                    {
                    lv_path_0_0=(Token)match(input,265,FOLLOW_265_in_ruleSpellInst317118); 

                            newLeafNode(lv_path_0_0, grammarAccess.getSpellInst3Access().getPathPathKeyword_0_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getSpellInst3Rule());
                    	        }
                           		setWithLastConsumed(current, "path", true, "#path");
                    	    

                    }


                    }


                    }
                    break;
                case 2 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7128:6: ( (lv_pathlevel_1_0= '#pathlevel' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7128:6: ( (lv_pathlevel_1_0= '#pathlevel' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7129:1: (lv_pathlevel_1_0= '#pathlevel' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7129:1: (lv_pathlevel_1_0= '#pathlevel' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7130:3: lv_pathlevel_1_0= '#pathlevel'
                    {
                    lv_pathlevel_1_0=(Token)match(input,266,FOLLOW_266_in_ruleSpellInst317155); 

                            newLeafNode(lv_pathlevel_1_0, grammarAccess.getSpellInst3Access().getPathlevelPathlevelKeyword_1_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getSpellInst3Rule());
                    	        }
                           		setWithLastConsumed(current, "pathlevel", true, "#pathlevel");
                    	    

                    }


                    }


                    }
                    break;

            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleSpellInst3"


    // $ANTLR start "entryRuleSpellInst4"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7151:1: entryRuleSpellInst4 returns [EObject current=null] : iv_ruleSpellInst4= ruleSpellInst4 EOF ;
    public final EObject entryRuleSpellInst4() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleSpellInst4 = null;


        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7152:2: (iv_ruleSpellInst4= ruleSpellInst4 EOF )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7153:2: iv_ruleSpellInst4= ruleSpellInst4 EOF
            {
             newCompositeNode(grammarAccess.getSpellInst4Rule()); 
            pushFollow(FOLLOW_ruleSpellInst4_in_entryRuleSpellInst417204);
            iv_ruleSpellInst4=ruleSpellInst4();

            state._fsp--;

             current =iv_ruleSpellInst4; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleSpellInst417214); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleSpellInst4"


    // $ANTLR start "ruleSpellInst4"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7160:1: ruleSpellInst4 returns [EObject current=null] : ( (lv_clear_0_0= '#clear' ) ) ;
    public final EObject ruleSpellInst4() throws RecognitionException {
        EObject current = null;

        Token lv_clear_0_0=null;

         enterRule(); 
            
        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7163:28: ( ( (lv_clear_0_0= '#clear' ) ) )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7164:1: ( (lv_clear_0_0= '#clear' ) )
            {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7164:1: ( (lv_clear_0_0= '#clear' ) )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7165:1: (lv_clear_0_0= '#clear' )
            {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7165:1: (lv_clear_0_0= '#clear' )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7166:3: lv_clear_0_0= '#clear'
            {
            lv_clear_0_0=(Token)match(input,167,FOLLOW_167_in_ruleSpellInst417256); 

                    newLeafNode(lv_clear_0_0, grammarAccess.getSpellInst4Access().getClearClearKeyword_0());
                

            	        if (current==null) {
            	            current = createModelElement(grammarAccess.getSpellInst4Rule());
            	        }
                   		setWithLastConsumed(current, "clear", true, "#clear");
            	    

            }


            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleSpellInst4"


    // $ANTLR start "entryRuleSpellInst5"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7187:1: entryRuleSpellInst5 returns [EObject current=null] : iv_ruleSpellInst5= ruleSpellInst5 EOF ;
    public final EObject entryRuleSpellInst5() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleSpellInst5 = null;


        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7188:2: (iv_ruleSpellInst5= ruleSpellInst5 EOF )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7189:2: iv_ruleSpellInst5= ruleSpellInst5 EOF
            {
             newCompositeNode(grammarAccess.getSpellInst5Rule()); 
            pushFollow(FOLLOW_ruleSpellInst5_in_entryRuleSpellInst517304);
            iv_ruleSpellInst5=ruleSpellInst5();

            state._fsp--;

             current =iv_ruleSpellInst5; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleSpellInst517314); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleSpellInst5"


    // $ANTLR start "ruleSpellInst5"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7196:1: ruleSpellInst5 returns [EObject current=null] : ( ( (lv_copyspell_0_0= '#copyspell' ) ) | ( (lv_nextspell_1_0= '#nextspell' ) ) ) ;
    public final EObject ruleSpellInst5() throws RecognitionException {
        EObject current = null;

        Token lv_copyspell_0_0=null;
        Token lv_nextspell_1_0=null;

         enterRule(); 
            
        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7199:28: ( ( ( (lv_copyspell_0_0= '#copyspell' ) ) | ( (lv_nextspell_1_0= '#nextspell' ) ) ) )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7200:1: ( ( (lv_copyspell_0_0= '#copyspell' ) ) | ( (lv_nextspell_1_0= '#nextspell' ) ) )
            {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7200:1: ( ( (lv_copyspell_0_0= '#copyspell' ) ) | ( (lv_nextspell_1_0= '#nextspell' ) ) )
            int alt72=2;
            int LA72_0 = input.LA(1);

            if ( (LA72_0==267) ) {
                alt72=1;
            }
            else if ( (LA72_0==268) ) {
                alt72=2;
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("", 72, 0, input);

                throw nvae;
            }
            switch (alt72) {
                case 1 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7200:2: ( (lv_copyspell_0_0= '#copyspell' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7200:2: ( (lv_copyspell_0_0= '#copyspell' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7201:1: (lv_copyspell_0_0= '#copyspell' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7201:1: (lv_copyspell_0_0= '#copyspell' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7202:3: lv_copyspell_0_0= '#copyspell'
                    {
                    lv_copyspell_0_0=(Token)match(input,267,FOLLOW_267_in_ruleSpellInst517357); 

                            newLeafNode(lv_copyspell_0_0, grammarAccess.getSpellInst5Access().getCopyspellCopyspellKeyword_0_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getSpellInst5Rule());
                    	        }
                           		setWithLastConsumed(current, "copyspell", true, "#copyspell");
                    	    

                    }


                    }


                    }
                    break;
                case 2 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7216:6: ( (lv_nextspell_1_0= '#nextspell' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7216:6: ( (lv_nextspell_1_0= '#nextspell' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7217:1: (lv_nextspell_1_0= '#nextspell' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7217:1: (lv_nextspell_1_0= '#nextspell' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7218:3: lv_nextspell_1_0= '#nextspell'
                    {
                    lv_nextspell_1_0=(Token)match(input,268,FOLLOW_268_in_ruleSpellInst517394); 

                            newLeafNode(lv_nextspell_1_0, grammarAccess.getSpellInst5Access().getNextspellNextspellKeyword_1_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getSpellInst5Rule());
                    	        }
                           		setWithLastConsumed(current, "nextspell", true, "#nextspell");
                    	    

                    }


                    }


                    }
                    break;

            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleSpellInst5"


    // $ANTLR start "entryRuleItem"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7239:1: entryRuleItem returns [EObject current=null] : iv_ruleItem= ruleItem EOF ;
    public final EObject entryRuleItem() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleItem = null;


        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7240:2: (iv_ruleItem= ruleItem EOF )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7241:2: iv_ruleItem= ruleItem EOF
            {
             newCompositeNode(grammarAccess.getItemRule()); 
            pushFollow(FOLLOW_ruleItem_in_entryRuleItem17443);
            iv_ruleItem=ruleItem();

            state._fsp--;

             current =iv_ruleItem; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleItem17453); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleItem"


    // $ANTLR start "ruleItem"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7248:1: ruleItem returns [EObject current=null] : (this_SelectItemById_0= ruleSelectItemById | this_SelectItemByName_1= ruleSelectItemByName | this_NewItem_2= ruleNewItem ) ;
    public final EObject ruleItem() throws RecognitionException {
        EObject current = null;

        EObject this_SelectItemById_0 = null;

        EObject this_SelectItemByName_1 = null;

        EObject this_NewItem_2 = null;


         enterRule(); 
            
        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7251:28: ( (this_SelectItemById_0= ruleSelectItemById | this_SelectItemByName_1= ruleSelectItemByName | this_NewItem_2= ruleNewItem ) )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7252:1: (this_SelectItemById_0= ruleSelectItemById | this_SelectItemByName_1= ruleSelectItemByName | this_NewItem_2= ruleNewItem )
            {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7252:1: (this_SelectItemById_0= ruleSelectItemById | this_SelectItemByName_1= ruleSelectItemByName | this_NewItem_2= ruleNewItem )
            int alt73=3;
            int LA73_0 = input.LA(1);

            if ( (LA73_0==269) ) {
                int LA73_1 = input.LA(2);

                if ( (LA73_1==RULE_INT) ) {
                    alt73=1;
                }
                else if ( (LA73_1==RULE_STRING) ) {
                    alt73=2;
                }
                else {
                    NoViableAltException nvae =
                        new NoViableAltException("", 73, 1, input);

                    throw nvae;
                }
            }
            else if ( (LA73_0==270) ) {
                alt73=3;
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("", 73, 0, input);

                throw nvae;
            }
            switch (alt73) {
                case 1 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7253:5: this_SelectItemById_0= ruleSelectItemById
                    {
                     
                            newCompositeNode(grammarAccess.getItemAccess().getSelectItemByIdParserRuleCall_0()); 
                        
                    pushFollow(FOLLOW_ruleSelectItemById_in_ruleItem17500);
                    this_SelectItemById_0=ruleSelectItemById();

                    state._fsp--;

                     
                            current = this_SelectItemById_0; 
                            afterParserOrEnumRuleCall();
                        

                    }
                    break;
                case 2 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7263:5: this_SelectItemByName_1= ruleSelectItemByName
                    {
                     
                            newCompositeNode(grammarAccess.getItemAccess().getSelectItemByNameParserRuleCall_1()); 
                        
                    pushFollow(FOLLOW_ruleSelectItemByName_in_ruleItem17527);
                    this_SelectItemByName_1=ruleSelectItemByName();

                    state._fsp--;

                     
                            current = this_SelectItemByName_1; 
                            afterParserOrEnumRuleCall();
                        

                    }
                    break;
                case 3 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7273:5: this_NewItem_2= ruleNewItem
                    {
                     
                            newCompositeNode(grammarAccess.getItemAccess().getNewItemParserRuleCall_2()); 
                        
                    pushFollow(FOLLOW_ruleNewItem_in_ruleItem17554);
                    this_NewItem_2=ruleNewItem();

                    state._fsp--;

                     
                            current = this_NewItem_2; 
                            afterParserOrEnumRuleCall();
                        

                    }
                    break;

            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleItem"


    // $ANTLR start "entryRuleSelectItemById"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7289:1: entryRuleSelectItemById returns [EObject current=null] : iv_ruleSelectItemById= ruleSelectItemById EOF ;
    public final EObject entryRuleSelectItemById() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleSelectItemById = null;


        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7290:2: (iv_ruleSelectItemById= ruleSelectItemById EOF )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7291:2: iv_ruleSelectItemById= ruleSelectItemById EOF
            {
             newCompositeNode(grammarAccess.getSelectItemByIdRule()); 
            pushFollow(FOLLOW_ruleSelectItemById_in_entryRuleSelectItemById17589);
            iv_ruleSelectItemById=ruleSelectItemById();

            state._fsp--;

             current =iv_ruleSelectItemById; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleSelectItemById17599); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleSelectItemById"


    // $ANTLR start "ruleSelectItemById"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7298:1: ruleSelectItemById returns [EObject current=null] : (otherlv_0= '#selectitem' ( (lv_value_1_0= RULE_INT ) ) (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )* ( (lv_mods_3_0= ruleItemMods ) )* otherlv_4= '#end' ) ;
    public final EObject ruleSelectItemById() throws RecognitionException {
        EObject current = null;

        Token otherlv_0=null;
        Token lv_value_1_0=null;
        Token this_FREE_FORM_COMMENT_2=null;
        Token otherlv_4=null;
        EObject lv_mods_3_0 = null;


         enterRule(); 
            
        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7301:28: ( (otherlv_0= '#selectitem' ( (lv_value_1_0= RULE_INT ) ) (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )* ( (lv_mods_3_0= ruleItemMods ) )* otherlv_4= '#end' ) )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7302:1: (otherlv_0= '#selectitem' ( (lv_value_1_0= RULE_INT ) ) (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )* ( (lv_mods_3_0= ruleItemMods ) )* otherlv_4= '#end' )
            {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7302:1: (otherlv_0= '#selectitem' ( (lv_value_1_0= RULE_INT ) ) (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )* ( (lv_mods_3_0= ruleItemMods ) )* otherlv_4= '#end' )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7302:3: otherlv_0= '#selectitem' ( (lv_value_1_0= RULE_INT ) ) (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )* ( (lv_mods_3_0= ruleItemMods ) )* otherlv_4= '#end'
            {
            otherlv_0=(Token)match(input,269,FOLLOW_269_in_ruleSelectItemById17636); 

                	newLeafNode(otherlv_0, grammarAccess.getSelectItemByIdAccess().getSelectitemKeyword_0());
                
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7306:1: ( (lv_value_1_0= RULE_INT ) )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7307:1: (lv_value_1_0= RULE_INT )
            {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7307:1: (lv_value_1_0= RULE_INT )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7308:3: lv_value_1_0= RULE_INT
            {
            lv_value_1_0=(Token)match(input,RULE_INT,FOLLOW_RULE_INT_in_ruleSelectItemById17653); 

            			newLeafNode(lv_value_1_0, grammarAccess.getSelectItemByIdAccess().getValueINTTerminalRuleCall_1_0()); 
            		

            	        if (current==null) {
            	            current = createModelElement(grammarAccess.getSelectItemByIdRule());
            	        }
                   		setWithLastConsumed(
                   			current, 
                   			"value",
                    		lv_value_1_0, 
                    		"INT");
            	    

            }


            }

            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7324:2: (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )*
            loop74:
            do {
                int alt74=2;
                int LA74_0 = input.LA(1);

                if ( (LA74_0==RULE_FREE_FORM_COMMENT) ) {
                    alt74=1;
                }


                switch (alt74) {
            	case 1 :
            	    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7324:3: this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT
            	    {
            	    this_FREE_FORM_COMMENT_2=(Token)match(input,RULE_FREE_FORM_COMMENT,FOLLOW_RULE_FREE_FORM_COMMENT_in_ruleSelectItemById17670); 
            	     
            	        newLeafNode(this_FREE_FORM_COMMENT_2, grammarAccess.getSelectItemByIdAccess().getFREE_FORM_COMMENTTerminalRuleCall_2()); 
            	        

            	    }
            	    break;

            	default :
            	    break loop74;
                }
            } while (true);

            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7328:3: ( (lv_mods_3_0= ruleItemMods ) )*
            loop75:
            do {
                int alt75=2;
                int LA75_0 = input.LA(1);

                if ( ((LA75_0>=36 && LA75_0<=37)||LA75_0==89||LA75_0==105||(LA75_0>=230 && LA75_0<=231)||(LA75_0>=271 && LA75_0<=275)) ) {
                    alt75=1;
                }


                switch (alt75) {
            	case 1 :
            	    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7329:1: (lv_mods_3_0= ruleItemMods )
            	    {
            	    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7329:1: (lv_mods_3_0= ruleItemMods )
            	    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7330:3: lv_mods_3_0= ruleItemMods
            	    {
            	     
            	    	        newCompositeNode(grammarAccess.getSelectItemByIdAccess().getModsItemModsParserRuleCall_3_0()); 
            	    	    
            	    pushFollow(FOLLOW_ruleItemMods_in_ruleSelectItemById17692);
            	    lv_mods_3_0=ruleItemMods();

            	    state._fsp--;


            	    	        if (current==null) {
            	    	            current = createModelElementForParent(grammarAccess.getSelectItemByIdRule());
            	    	        }
            	           		add(
            	           			current, 
            	           			"mods",
            	            		lv_mods_3_0, 
            	            		"ItemMods");
            	    	        afterParserOrEnumRuleCall();
            	    	    

            	    }


            	    }
            	    break;

            	default :
            	    break loop75;
                }
            } while (true);

            otherlv_4=(Token)match(input,15,FOLLOW_15_in_ruleSelectItemById17705); 

                	newLeafNode(otherlv_4, grammarAccess.getSelectItemByIdAccess().getEndKeyword_4());
                

            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleSelectItemById"


    // $ANTLR start "entryRuleSelectItemByName"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7358:1: entryRuleSelectItemByName returns [EObject current=null] : iv_ruleSelectItemByName= ruleSelectItemByName EOF ;
    public final EObject entryRuleSelectItemByName() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleSelectItemByName = null;


        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7359:2: (iv_ruleSelectItemByName= ruleSelectItemByName EOF )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7360:2: iv_ruleSelectItemByName= ruleSelectItemByName EOF
            {
             newCompositeNode(grammarAccess.getSelectItemByNameRule()); 
            pushFollow(FOLLOW_ruleSelectItemByName_in_entryRuleSelectItemByName17741);
            iv_ruleSelectItemByName=ruleSelectItemByName();

            state._fsp--;

             current =iv_ruleSelectItemByName; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleSelectItemByName17751); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleSelectItemByName"


    // $ANTLR start "ruleSelectItemByName"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7367:1: ruleSelectItemByName returns [EObject current=null] : (otherlv_0= '#selectitem' ( (lv_value_1_0= RULE_STRING ) ) (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )* ( (lv_mods_3_0= ruleItemMods ) )* otherlv_4= '#end' ) ;
    public final EObject ruleSelectItemByName() throws RecognitionException {
        EObject current = null;

        Token otherlv_0=null;
        Token lv_value_1_0=null;
        Token this_FREE_FORM_COMMENT_2=null;
        Token otherlv_4=null;
        EObject lv_mods_3_0 = null;


         enterRule(); 
            
        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7370:28: ( (otherlv_0= '#selectitem' ( (lv_value_1_0= RULE_STRING ) ) (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )* ( (lv_mods_3_0= ruleItemMods ) )* otherlv_4= '#end' ) )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7371:1: (otherlv_0= '#selectitem' ( (lv_value_1_0= RULE_STRING ) ) (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )* ( (lv_mods_3_0= ruleItemMods ) )* otherlv_4= '#end' )
            {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7371:1: (otherlv_0= '#selectitem' ( (lv_value_1_0= RULE_STRING ) ) (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )* ( (lv_mods_3_0= ruleItemMods ) )* otherlv_4= '#end' )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7371:3: otherlv_0= '#selectitem' ( (lv_value_1_0= RULE_STRING ) ) (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )* ( (lv_mods_3_0= ruleItemMods ) )* otherlv_4= '#end'
            {
            otherlv_0=(Token)match(input,269,FOLLOW_269_in_ruleSelectItemByName17788); 

                	newLeafNode(otherlv_0, grammarAccess.getSelectItemByNameAccess().getSelectitemKeyword_0());
                
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7375:1: ( (lv_value_1_0= RULE_STRING ) )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7376:1: (lv_value_1_0= RULE_STRING )
            {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7376:1: (lv_value_1_0= RULE_STRING )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7377:3: lv_value_1_0= RULE_STRING
            {
            lv_value_1_0=(Token)match(input,RULE_STRING,FOLLOW_RULE_STRING_in_ruleSelectItemByName17805); 

            			newLeafNode(lv_value_1_0, grammarAccess.getSelectItemByNameAccess().getValueSTRINGTerminalRuleCall_1_0()); 
            		

            	        if (current==null) {
            	            current = createModelElement(grammarAccess.getSelectItemByNameRule());
            	        }
                   		setWithLastConsumed(
                   			current, 
                   			"value",
                    		lv_value_1_0, 
                    		"STRING");
            	    

            }


            }

            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7393:2: (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )*
            loop76:
            do {
                int alt76=2;
                int LA76_0 = input.LA(1);

                if ( (LA76_0==RULE_FREE_FORM_COMMENT) ) {
                    alt76=1;
                }


                switch (alt76) {
            	case 1 :
            	    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7393:3: this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT
            	    {
            	    this_FREE_FORM_COMMENT_2=(Token)match(input,RULE_FREE_FORM_COMMENT,FOLLOW_RULE_FREE_FORM_COMMENT_in_ruleSelectItemByName17822); 
            	     
            	        newLeafNode(this_FREE_FORM_COMMENT_2, grammarAccess.getSelectItemByNameAccess().getFREE_FORM_COMMENTTerminalRuleCall_2()); 
            	        

            	    }
            	    break;

            	default :
            	    break loop76;
                }
            } while (true);

            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7397:3: ( (lv_mods_3_0= ruleItemMods ) )*
            loop77:
            do {
                int alt77=2;
                int LA77_0 = input.LA(1);

                if ( ((LA77_0>=36 && LA77_0<=37)||LA77_0==89||LA77_0==105||(LA77_0>=230 && LA77_0<=231)||(LA77_0>=271 && LA77_0<=275)) ) {
                    alt77=1;
                }


                switch (alt77) {
            	case 1 :
            	    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7398:1: (lv_mods_3_0= ruleItemMods )
            	    {
            	    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7398:1: (lv_mods_3_0= ruleItemMods )
            	    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7399:3: lv_mods_3_0= ruleItemMods
            	    {
            	     
            	    	        newCompositeNode(grammarAccess.getSelectItemByNameAccess().getModsItemModsParserRuleCall_3_0()); 
            	    	    
            	    pushFollow(FOLLOW_ruleItemMods_in_ruleSelectItemByName17844);
            	    lv_mods_3_0=ruleItemMods();

            	    state._fsp--;


            	    	        if (current==null) {
            	    	            current = createModelElementForParent(grammarAccess.getSelectItemByNameRule());
            	    	        }
            	           		add(
            	           			current, 
            	           			"mods",
            	            		lv_mods_3_0, 
            	            		"ItemMods");
            	    	        afterParserOrEnumRuleCall();
            	    	    

            	    }


            	    }
            	    break;

            	default :
            	    break loop77;
                }
            } while (true);

            otherlv_4=(Token)match(input,15,FOLLOW_15_in_ruleSelectItemByName17857); 

                	newLeafNode(otherlv_4, grammarAccess.getSelectItemByNameAccess().getEndKeyword_4());
                

            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleSelectItemByName"


    // $ANTLR start "entryRuleNewItem"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7427:1: entryRuleNewItem returns [EObject current=null] : iv_ruleNewItem= ruleNewItem EOF ;
    public final EObject entryRuleNewItem() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleNewItem = null;


        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7428:2: (iv_ruleNewItem= ruleNewItem EOF )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7429:2: iv_ruleNewItem= ruleNewItem EOF
            {
             newCompositeNode(grammarAccess.getNewItemRule()); 
            pushFollow(FOLLOW_ruleNewItem_in_entryRuleNewItem17893);
            iv_ruleNewItem=ruleNewItem();

            state._fsp--;

             current =iv_ruleNewItem; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleNewItem17903); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleNewItem"


    // $ANTLR start "ruleNewItem"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7436:1: ruleNewItem returns [EObject current=null] : (otherlv_0= '#newitem' (this_FREE_FORM_COMMENT_1= RULE_FREE_FORM_COMMENT )* ( (lv_mods_2_0= ruleItemMods ) )* otherlv_3= '#end' ) ;
    public final EObject ruleNewItem() throws RecognitionException {
        EObject current = null;

        Token otherlv_0=null;
        Token this_FREE_FORM_COMMENT_1=null;
        Token otherlv_3=null;
        EObject lv_mods_2_0 = null;


         enterRule(); 
            
        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7439:28: ( (otherlv_0= '#newitem' (this_FREE_FORM_COMMENT_1= RULE_FREE_FORM_COMMENT )* ( (lv_mods_2_0= ruleItemMods ) )* otherlv_3= '#end' ) )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7440:1: (otherlv_0= '#newitem' (this_FREE_FORM_COMMENT_1= RULE_FREE_FORM_COMMENT )* ( (lv_mods_2_0= ruleItemMods ) )* otherlv_3= '#end' )
            {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7440:1: (otherlv_0= '#newitem' (this_FREE_FORM_COMMENT_1= RULE_FREE_FORM_COMMENT )* ( (lv_mods_2_0= ruleItemMods ) )* otherlv_3= '#end' )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7440:3: otherlv_0= '#newitem' (this_FREE_FORM_COMMENT_1= RULE_FREE_FORM_COMMENT )* ( (lv_mods_2_0= ruleItemMods ) )* otherlv_3= '#end'
            {
            otherlv_0=(Token)match(input,270,FOLLOW_270_in_ruleNewItem17940); 

                	newLeafNode(otherlv_0, grammarAccess.getNewItemAccess().getNewitemKeyword_0());
                
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7444:1: (this_FREE_FORM_COMMENT_1= RULE_FREE_FORM_COMMENT )*
            loop78:
            do {
                int alt78=2;
                int LA78_0 = input.LA(1);

                if ( (LA78_0==RULE_FREE_FORM_COMMENT) ) {
                    alt78=1;
                }


                switch (alt78) {
            	case 1 :
            	    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7444:2: this_FREE_FORM_COMMENT_1= RULE_FREE_FORM_COMMENT
            	    {
            	    this_FREE_FORM_COMMENT_1=(Token)match(input,RULE_FREE_FORM_COMMENT,FOLLOW_RULE_FREE_FORM_COMMENT_in_ruleNewItem17952); 
            	     
            	        newLeafNode(this_FREE_FORM_COMMENT_1, grammarAccess.getNewItemAccess().getFREE_FORM_COMMENTTerminalRuleCall_1()); 
            	        

            	    }
            	    break;

            	default :
            	    break loop78;
                }
            } while (true);

            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7448:3: ( (lv_mods_2_0= ruleItemMods ) )*
            loop79:
            do {
                int alt79=2;
                int LA79_0 = input.LA(1);

                if ( ((LA79_0>=36 && LA79_0<=37)||LA79_0==89||LA79_0==105||(LA79_0>=230 && LA79_0<=231)||(LA79_0>=271 && LA79_0<=275)) ) {
                    alt79=1;
                }


                switch (alt79) {
            	case 1 :
            	    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7449:1: (lv_mods_2_0= ruleItemMods )
            	    {
            	    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7449:1: (lv_mods_2_0= ruleItemMods )
            	    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7450:3: lv_mods_2_0= ruleItemMods
            	    {
            	     
            	    	        newCompositeNode(grammarAccess.getNewItemAccess().getModsItemModsParserRuleCall_2_0()); 
            	    	    
            	    pushFollow(FOLLOW_ruleItemMods_in_ruleNewItem17974);
            	    lv_mods_2_0=ruleItemMods();

            	    state._fsp--;


            	    	        if (current==null) {
            	    	            current = createModelElementForParent(grammarAccess.getNewItemRule());
            	    	        }
            	           		add(
            	           			current, 
            	           			"mods",
            	            		lv_mods_2_0, 
            	            		"ItemMods");
            	    	        afterParserOrEnumRuleCall();
            	    	    

            	    }


            	    }
            	    break;

            	default :
            	    break loop79;
                }
            } while (true);

            otherlv_3=(Token)match(input,15,FOLLOW_15_in_ruleNewItem17987); 

                	newLeafNode(otherlv_3, grammarAccess.getNewItemAccess().getEndKeyword_3());
                

            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleNewItem"


    // $ANTLR start "entryRuleItemMods"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7478:1: entryRuleItemMods returns [EObject current=null] : iv_ruleItemMods= ruleItemMods EOF ;
    public final EObject entryRuleItemMods() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleItemMods = null;


        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7479:2: (iv_ruleItemMods= ruleItemMods EOF )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7480:2: iv_ruleItemMods= ruleItemMods EOF
            {
             newCompositeNode(grammarAccess.getItemModsRule()); 
            pushFollow(FOLLOW_ruleItemMods_in_entryRuleItemMods18023);
            iv_ruleItemMods=ruleItemMods();

            state._fsp--;

             current =iv_ruleItemMods; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleItemMods18033); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleItemMods"


    // $ANTLR start "ruleItemMods"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7487:1: ruleItemMods returns [EObject current=null] : (this_ItemPattern1_0= ruleItemPattern1 | this_ItemPattern2_1= ruleItemPattern2 | this_ItemPattern3_2= ruleItemPattern3 ) ;
    public final EObject ruleItemMods() throws RecognitionException {
        EObject current = null;

        EObject this_ItemPattern1_0 = null;

        EObject this_ItemPattern2_1 = null;

        EObject this_ItemPattern3_2 = null;


         enterRule(); 
            
        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7490:28: ( (this_ItemPattern1_0= ruleItemPattern1 | this_ItemPattern2_1= ruleItemPattern2 | this_ItemPattern3_2= ruleItemPattern3 ) )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7491:1: (this_ItemPattern1_0= ruleItemPattern1 | this_ItemPattern2_1= ruleItemPattern2 | this_ItemPattern3_2= ruleItemPattern3 )
            {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7491:1: (this_ItemPattern1_0= ruleItemPattern1 | this_ItemPattern2_1= ruleItemPattern2 | this_ItemPattern3_2= ruleItemPattern3 )
            int alt80=3;
            switch ( input.LA(1) ) {
            case 36:
            case 89:
            case 231:
                {
                alt80=1;
                }
                break;
            case 37:
            case 271:
            case 272:
            case 273:
            case 274:
            case 275:
                {
                alt80=2;
                }
                break;
            case 105:
            case 230:
                {
                alt80=3;
                }
                break;
            default:
                NoViableAltException nvae =
                    new NoViableAltException("", 80, 0, input);

                throw nvae;
            }

            switch (alt80) {
                case 1 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7492:5: this_ItemPattern1_0= ruleItemPattern1
                    {
                     
                            newCompositeNode(grammarAccess.getItemModsAccess().getItemPattern1ParserRuleCall_0()); 
                        
                    pushFollow(FOLLOW_ruleItemPattern1_in_ruleItemMods18080);
                    this_ItemPattern1_0=ruleItemPattern1();

                    state._fsp--;

                     
                            current = this_ItemPattern1_0; 
                            afterParserOrEnumRuleCall();
                        

                    }
                    break;
                case 2 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7502:5: this_ItemPattern2_1= ruleItemPattern2
                    {
                     
                            newCompositeNode(grammarAccess.getItemModsAccess().getItemPattern2ParserRuleCall_1()); 
                        
                    pushFollow(FOLLOW_ruleItemPattern2_in_ruleItemMods18107);
                    this_ItemPattern2_1=ruleItemPattern2();

                    state._fsp--;

                     
                            current = this_ItemPattern2_1; 
                            afterParserOrEnumRuleCall();
                        

                    }
                    break;
                case 3 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7512:5: this_ItemPattern3_2= ruleItemPattern3
                    {
                     
                            newCompositeNode(grammarAccess.getItemModsAccess().getItemPattern3ParserRuleCall_2()); 
                        
                    pushFollow(FOLLOW_ruleItemPattern3_in_ruleItemMods18134);
                    this_ItemPattern3_2=ruleItemPattern3();

                    state._fsp--;

                     
                            current = this_ItemPattern3_2; 
                            afterParserOrEnumRuleCall();
                        

                    }
                    break;

            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleItemMods"


    // $ANTLR start "entryRuleItemPattern1"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7528:1: entryRuleItemPattern1 returns [EObject current=null] : iv_ruleItemPattern1= ruleItemPattern1 EOF ;
    public final EObject entryRuleItemPattern1() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleItemPattern1 = null;


        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7529:2: (iv_ruleItemPattern1= ruleItemPattern1 EOF )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7530:2: iv_ruleItemPattern1= ruleItemPattern1 EOF
            {
             newCompositeNode(grammarAccess.getItemPattern1Rule()); 
            pushFollow(FOLLOW_ruleItemPattern1_in_entryRuleItemPattern118169);
            iv_ruleItemPattern1=ruleItemPattern1();

            state._fsp--;

             current =iv_ruleItemPattern1; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleItemPattern118179); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleItemPattern1"


    // $ANTLR start "ruleItemPattern1"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7537:1: ruleItemPattern1 returns [EObject current=null] : (this_ItemInst1_0= ruleItemInst1 ( (lv_value_1_0= RULE_STRING ) ) (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )* ) ;
    public final EObject ruleItemPattern1() throws RecognitionException {
        EObject current = null;

        Token lv_value_1_0=null;
        Token this_FREE_FORM_COMMENT_2=null;
        EObject this_ItemInst1_0 = null;


         enterRule(); 
            
        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7540:28: ( (this_ItemInst1_0= ruleItemInst1 ( (lv_value_1_0= RULE_STRING ) ) (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )* ) )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7541:1: (this_ItemInst1_0= ruleItemInst1 ( (lv_value_1_0= RULE_STRING ) ) (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )* )
            {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7541:1: (this_ItemInst1_0= ruleItemInst1 ( (lv_value_1_0= RULE_STRING ) ) (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )* )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7542:5: this_ItemInst1_0= ruleItemInst1 ( (lv_value_1_0= RULE_STRING ) ) (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )*
            {
             
                    newCompositeNode(grammarAccess.getItemPattern1Access().getItemInst1ParserRuleCall_0()); 
                
            pushFollow(FOLLOW_ruleItemInst1_in_ruleItemPattern118226);
            this_ItemInst1_0=ruleItemInst1();

            state._fsp--;

             
                    current = this_ItemInst1_0; 
                    afterParserOrEnumRuleCall();
                
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7550:1: ( (lv_value_1_0= RULE_STRING ) )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7551:1: (lv_value_1_0= RULE_STRING )
            {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7551:1: (lv_value_1_0= RULE_STRING )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7552:3: lv_value_1_0= RULE_STRING
            {
            lv_value_1_0=(Token)match(input,RULE_STRING,FOLLOW_RULE_STRING_in_ruleItemPattern118242); 

            			newLeafNode(lv_value_1_0, grammarAccess.getItemPattern1Access().getValueSTRINGTerminalRuleCall_1_0()); 
            		

            	        if (current==null) {
            	            current = createModelElement(grammarAccess.getItemPattern1Rule());
            	        }
                   		setWithLastConsumed(
                   			current, 
                   			"value",
                    		lv_value_1_0, 
                    		"STRING");
            	    

            }


            }

            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7568:2: (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )*
            loop81:
            do {
                int alt81=2;
                int LA81_0 = input.LA(1);

                if ( (LA81_0==RULE_FREE_FORM_COMMENT) ) {
                    alt81=1;
                }


                switch (alt81) {
            	case 1 :
            	    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7568:3: this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT
            	    {
            	    this_FREE_FORM_COMMENT_2=(Token)match(input,RULE_FREE_FORM_COMMENT,FOLLOW_RULE_FREE_FORM_COMMENT_in_ruleItemPattern118259); 
            	     
            	        newLeafNode(this_FREE_FORM_COMMENT_2, grammarAccess.getItemPattern1Access().getFREE_FORM_COMMENTTerminalRuleCall_2()); 
            	        

            	    }
            	    break;

            	default :
            	    break loop81;
                }
            } while (true);


            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleItemPattern1"


    // $ANTLR start "entryRuleItemPattern2"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7580:1: entryRuleItemPattern2 returns [EObject current=null] : iv_ruleItemPattern2= ruleItemPattern2 EOF ;
    public final EObject entryRuleItemPattern2() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleItemPattern2 = null;


        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7581:2: (iv_ruleItemPattern2= ruleItemPattern2 EOF )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7582:2: iv_ruleItemPattern2= ruleItemPattern2 EOF
            {
             newCompositeNode(grammarAccess.getItemPattern2Rule()); 
            pushFollow(FOLLOW_ruleItemPattern2_in_entryRuleItemPattern218296);
            iv_ruleItemPattern2=ruleItemPattern2();

            state._fsp--;

             current =iv_ruleItemPattern2; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleItemPattern218306); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleItemPattern2"


    // $ANTLR start "ruleItemPattern2"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7589:1: ruleItemPattern2 returns [EObject current=null] : (this_ItemInst2_0= ruleItemInst2 ( (lv_value_1_0= RULE_INT ) ) (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )* ) ;
    public final EObject ruleItemPattern2() throws RecognitionException {
        EObject current = null;

        Token lv_value_1_0=null;
        Token this_FREE_FORM_COMMENT_2=null;
        EObject this_ItemInst2_0 = null;


         enterRule(); 
            
        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7592:28: ( (this_ItemInst2_0= ruleItemInst2 ( (lv_value_1_0= RULE_INT ) ) (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )* ) )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7593:1: (this_ItemInst2_0= ruleItemInst2 ( (lv_value_1_0= RULE_INT ) ) (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )* )
            {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7593:1: (this_ItemInst2_0= ruleItemInst2 ( (lv_value_1_0= RULE_INT ) ) (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )* )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7594:5: this_ItemInst2_0= ruleItemInst2 ( (lv_value_1_0= RULE_INT ) ) (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )*
            {
             
                    newCompositeNode(grammarAccess.getItemPattern2Access().getItemInst2ParserRuleCall_0()); 
                
            pushFollow(FOLLOW_ruleItemInst2_in_ruleItemPattern218353);
            this_ItemInst2_0=ruleItemInst2();

            state._fsp--;

             
                    current = this_ItemInst2_0; 
                    afterParserOrEnumRuleCall();
                
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7602:1: ( (lv_value_1_0= RULE_INT ) )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7603:1: (lv_value_1_0= RULE_INT )
            {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7603:1: (lv_value_1_0= RULE_INT )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7604:3: lv_value_1_0= RULE_INT
            {
            lv_value_1_0=(Token)match(input,RULE_INT,FOLLOW_RULE_INT_in_ruleItemPattern218369); 

            			newLeafNode(lv_value_1_0, grammarAccess.getItemPattern2Access().getValueINTTerminalRuleCall_1_0()); 
            		

            	        if (current==null) {
            	            current = createModelElement(grammarAccess.getItemPattern2Rule());
            	        }
                   		setWithLastConsumed(
                   			current, 
                   			"value",
                    		lv_value_1_0, 
                    		"INT");
            	    

            }


            }

            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7620:2: (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )*
            loop82:
            do {
                int alt82=2;
                int LA82_0 = input.LA(1);

                if ( (LA82_0==RULE_FREE_FORM_COMMENT) ) {
                    alt82=1;
                }


                switch (alt82) {
            	case 1 :
            	    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7620:3: this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT
            	    {
            	    this_FREE_FORM_COMMENT_2=(Token)match(input,RULE_FREE_FORM_COMMENT,FOLLOW_RULE_FREE_FORM_COMMENT_in_ruleItemPattern218386); 
            	     
            	        newLeafNode(this_FREE_FORM_COMMENT_2, grammarAccess.getItemPattern2Access().getFREE_FORM_COMMENTTerminalRuleCall_2()); 
            	        

            	    }
            	    break;

            	default :
            	    break loop82;
                }
            } while (true);


            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleItemPattern2"


    // $ANTLR start "entryRuleItemPattern3"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7632:1: entryRuleItemPattern3 returns [EObject current=null] : iv_ruleItemPattern3= ruleItemPattern3 EOF ;
    public final EObject entryRuleItemPattern3() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleItemPattern3 = null;


        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7633:2: (iv_ruleItemPattern3= ruleItemPattern3 EOF )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7634:2: iv_ruleItemPattern3= ruleItemPattern3 EOF
            {
             newCompositeNode(grammarAccess.getItemPattern3Rule()); 
            pushFollow(FOLLOW_ruleItemPattern3_in_entryRuleItemPattern318423);
            iv_ruleItemPattern3=ruleItemPattern3();

            state._fsp--;

             current =iv_ruleItemPattern3; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleItemPattern318433); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleItemPattern3"


    // $ANTLR start "ruleItemPattern3"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7641:1: ruleItemPattern3 returns [EObject current=null] : (this_ItemInst3_0= ruleItemInst3 ( ( (lv_value1_1_0= RULE_STRING ) ) | ( (lv_value2_2_0= RULE_INT ) ) ) (this_FREE_FORM_COMMENT_3= RULE_FREE_FORM_COMMENT )* ) ;
    public final EObject ruleItemPattern3() throws RecognitionException {
        EObject current = null;

        Token lv_value1_1_0=null;
        Token lv_value2_2_0=null;
        Token this_FREE_FORM_COMMENT_3=null;
        EObject this_ItemInst3_0 = null;


         enterRule(); 
            
        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7644:28: ( (this_ItemInst3_0= ruleItemInst3 ( ( (lv_value1_1_0= RULE_STRING ) ) | ( (lv_value2_2_0= RULE_INT ) ) ) (this_FREE_FORM_COMMENT_3= RULE_FREE_FORM_COMMENT )* ) )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7645:1: (this_ItemInst3_0= ruleItemInst3 ( ( (lv_value1_1_0= RULE_STRING ) ) | ( (lv_value2_2_0= RULE_INT ) ) ) (this_FREE_FORM_COMMENT_3= RULE_FREE_FORM_COMMENT )* )
            {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7645:1: (this_ItemInst3_0= ruleItemInst3 ( ( (lv_value1_1_0= RULE_STRING ) ) | ( (lv_value2_2_0= RULE_INT ) ) ) (this_FREE_FORM_COMMENT_3= RULE_FREE_FORM_COMMENT )* )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7646:5: this_ItemInst3_0= ruleItemInst3 ( ( (lv_value1_1_0= RULE_STRING ) ) | ( (lv_value2_2_0= RULE_INT ) ) ) (this_FREE_FORM_COMMENT_3= RULE_FREE_FORM_COMMENT )*
            {
             
                    newCompositeNode(grammarAccess.getItemPattern3Access().getItemInst3ParserRuleCall_0()); 
                
            pushFollow(FOLLOW_ruleItemInst3_in_ruleItemPattern318480);
            this_ItemInst3_0=ruleItemInst3();

            state._fsp--;

             
                    current = this_ItemInst3_0; 
                    afterParserOrEnumRuleCall();
                
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7654:1: ( ( (lv_value1_1_0= RULE_STRING ) ) | ( (lv_value2_2_0= RULE_INT ) ) )
            int alt83=2;
            int LA83_0 = input.LA(1);

            if ( (LA83_0==RULE_STRING) ) {
                alt83=1;
            }
            else if ( (LA83_0==RULE_INT) ) {
                alt83=2;
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("", 83, 0, input);

                throw nvae;
            }
            switch (alt83) {
                case 1 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7654:2: ( (lv_value1_1_0= RULE_STRING ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7654:2: ( (lv_value1_1_0= RULE_STRING ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7655:1: (lv_value1_1_0= RULE_STRING )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7655:1: (lv_value1_1_0= RULE_STRING )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7656:3: lv_value1_1_0= RULE_STRING
                    {
                    lv_value1_1_0=(Token)match(input,RULE_STRING,FOLLOW_RULE_STRING_in_ruleItemPattern318497); 

                    			newLeafNode(lv_value1_1_0, grammarAccess.getItemPattern3Access().getValue1STRINGTerminalRuleCall_1_0_0()); 
                    		

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getItemPattern3Rule());
                    	        }
                           		setWithLastConsumed(
                           			current, 
                           			"value1",
                            		lv_value1_1_0, 
                            		"STRING");
                    	    

                    }


                    }


                    }
                    break;
                case 2 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7673:6: ( (lv_value2_2_0= RULE_INT ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7673:6: ( (lv_value2_2_0= RULE_INT ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7674:1: (lv_value2_2_0= RULE_INT )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7674:1: (lv_value2_2_0= RULE_INT )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7675:3: lv_value2_2_0= RULE_INT
                    {
                    lv_value2_2_0=(Token)match(input,RULE_INT,FOLLOW_RULE_INT_in_ruleItemPattern318525); 

                    			newLeafNode(lv_value2_2_0, grammarAccess.getItemPattern3Access().getValue2INTTerminalRuleCall_1_1_0()); 
                    		

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getItemPattern3Rule());
                    	        }
                           		setWithLastConsumed(
                           			current, 
                           			"value2",
                            		lv_value2_2_0, 
                            		"INT");
                    	    

                    }


                    }


                    }
                    break;

            }

            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7691:3: (this_FREE_FORM_COMMENT_3= RULE_FREE_FORM_COMMENT )*
            loop84:
            do {
                int alt84=2;
                int LA84_0 = input.LA(1);

                if ( (LA84_0==RULE_FREE_FORM_COMMENT) ) {
                    alt84=1;
                }


                switch (alt84) {
            	case 1 :
            	    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7691:4: this_FREE_FORM_COMMENT_3= RULE_FREE_FORM_COMMENT
            	    {
            	    this_FREE_FORM_COMMENT_3=(Token)match(input,RULE_FREE_FORM_COMMENT,FOLLOW_RULE_FREE_FORM_COMMENT_in_ruleItemPattern318543); 
            	     
            	        newLeafNode(this_FREE_FORM_COMMENT_3, grammarAccess.getItemPattern3Access().getFREE_FORM_COMMENTTerminalRuleCall_2()); 
            	        

            	    }
            	    break;

            	default :
            	    break loop84;
                }
            } while (true);


            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleItemPattern3"


    // $ANTLR start "entryRuleItemInst1"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7703:1: entryRuleItemInst1 returns [EObject current=null] : iv_ruleItemInst1= ruleItemInst1 EOF ;
    public final EObject entryRuleItemInst1() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleItemInst1 = null;


        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7704:2: (iv_ruleItemInst1= ruleItemInst1 EOF )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7705:2: iv_ruleItemInst1= ruleItemInst1 EOF
            {
             newCompositeNode(grammarAccess.getItemInst1Rule()); 
            pushFollow(FOLLOW_ruleItemInst1_in_entryRuleItemInst118580);
            iv_ruleItemInst1=ruleItemInst1();

            state._fsp--;

             current =iv_ruleItemInst1; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleItemInst118590); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleItemInst1"


    // $ANTLR start "ruleItemInst1"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7712:1: ruleItemInst1 returns [EObject current=null] : ( ( (lv_name_0_0= '#name' ) ) | ( (lv_descr_1_0= '#descr' ) ) | ( (lv_armor_2_0= '#armor' ) ) ) ;
    public final EObject ruleItemInst1() throws RecognitionException {
        EObject current = null;

        Token lv_name_0_0=null;
        Token lv_descr_1_0=null;
        Token lv_armor_2_0=null;

         enterRule(); 
            
        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7715:28: ( ( ( (lv_name_0_0= '#name' ) ) | ( (lv_descr_1_0= '#descr' ) ) | ( (lv_armor_2_0= '#armor' ) ) ) )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7716:1: ( ( (lv_name_0_0= '#name' ) ) | ( (lv_descr_1_0= '#descr' ) ) | ( (lv_armor_2_0= '#armor' ) ) )
            {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7716:1: ( ( (lv_name_0_0= '#name' ) ) | ( (lv_descr_1_0= '#descr' ) ) | ( (lv_armor_2_0= '#armor' ) ) )
            int alt85=3;
            switch ( input.LA(1) ) {
            case 36:
                {
                alt85=1;
                }
                break;
            case 89:
                {
                alt85=2;
                }
                break;
            case 231:
                {
                alt85=3;
                }
                break;
            default:
                NoViableAltException nvae =
                    new NoViableAltException("", 85, 0, input);

                throw nvae;
            }

            switch (alt85) {
                case 1 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7716:2: ( (lv_name_0_0= '#name' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7716:2: ( (lv_name_0_0= '#name' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7717:1: (lv_name_0_0= '#name' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7717:1: (lv_name_0_0= '#name' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7718:3: lv_name_0_0= '#name'
                    {
                    lv_name_0_0=(Token)match(input,36,FOLLOW_36_in_ruleItemInst118633); 

                            newLeafNode(lv_name_0_0, grammarAccess.getItemInst1Access().getNameNameKeyword_0_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getItemInst1Rule());
                    	        }
                           		setWithLastConsumed(current, "name", true, "#name");
                    	    

                    }


                    }


                    }
                    break;
                case 2 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7732:6: ( (lv_descr_1_0= '#descr' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7732:6: ( (lv_descr_1_0= '#descr' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7733:1: (lv_descr_1_0= '#descr' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7733:1: (lv_descr_1_0= '#descr' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7734:3: lv_descr_1_0= '#descr'
                    {
                    lv_descr_1_0=(Token)match(input,89,FOLLOW_89_in_ruleItemInst118670); 

                            newLeafNode(lv_descr_1_0, grammarAccess.getItemInst1Access().getDescrDescrKeyword_1_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getItemInst1Rule());
                    	        }
                           		setWithLastConsumed(current, "descr", true, "#descr");
                    	    

                    }


                    }


                    }
                    break;
                case 3 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7748:6: ( (lv_armor_2_0= '#armor' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7748:6: ( (lv_armor_2_0= '#armor' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7749:1: (lv_armor_2_0= '#armor' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7749:1: (lv_armor_2_0= '#armor' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7750:3: lv_armor_2_0= '#armor'
                    {
                    lv_armor_2_0=(Token)match(input,231,FOLLOW_231_in_ruleItemInst118707); 

                            newLeafNode(lv_armor_2_0, grammarAccess.getItemInst1Access().getArmorArmorKeyword_2_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getItemInst1Rule());
                    	        }
                           		setWithLastConsumed(current, "armor", true, "#armor");
                    	    

                    }


                    }


                    }
                    break;

            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleItemInst1"


    // $ANTLR start "entryRuleItemInst2"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7771:1: entryRuleItemInst2 returns [EObject current=null] : iv_ruleItemInst2= ruleItemInst2 EOF ;
    public final EObject entryRuleItemInst2() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleItemInst2 = null;


        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7772:2: (iv_ruleItemInst2= ruleItemInst2 EOF )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7773:2: iv_ruleItemInst2= ruleItemInst2 EOF
            {
             newCompositeNode(grammarAccess.getItemInst2Rule()); 
            pushFollow(FOLLOW_ruleItemInst2_in_entryRuleItemInst218756);
            iv_ruleItemInst2=ruleItemInst2();

            state._fsp--;

             current =iv_ruleItemInst2; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleItemInst218766); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleItemInst2"


    // $ANTLR start "ruleItemInst2"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7780:1: ruleItemInst2 returns [EObject current=null] : ( ( (lv_constlevel_0_0= '#constlevel' ) ) | ( (lv_mainpath_1_0= '#mainpath' ) ) | ( (lv_mainlevel_2_0= '#mainlevel' ) ) | ( (lv_secondarypath_3_0= '#secondarypath' ) ) | ( (lv_secondarylevel_4_0= '#secondarylevel' ) ) | ( (lv_type_5_0= '#type' ) ) ) ;
    public final EObject ruleItemInst2() throws RecognitionException {
        EObject current = null;

        Token lv_constlevel_0_0=null;
        Token lv_mainpath_1_0=null;
        Token lv_mainlevel_2_0=null;
        Token lv_secondarypath_3_0=null;
        Token lv_secondarylevel_4_0=null;
        Token lv_type_5_0=null;

         enterRule(); 
            
        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7783:28: ( ( ( (lv_constlevel_0_0= '#constlevel' ) ) | ( (lv_mainpath_1_0= '#mainpath' ) ) | ( (lv_mainlevel_2_0= '#mainlevel' ) ) | ( (lv_secondarypath_3_0= '#secondarypath' ) ) | ( (lv_secondarylevel_4_0= '#secondarylevel' ) ) | ( (lv_type_5_0= '#type' ) ) ) )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7784:1: ( ( (lv_constlevel_0_0= '#constlevel' ) ) | ( (lv_mainpath_1_0= '#mainpath' ) ) | ( (lv_mainlevel_2_0= '#mainlevel' ) ) | ( (lv_secondarypath_3_0= '#secondarypath' ) ) | ( (lv_secondarylevel_4_0= '#secondarylevel' ) ) | ( (lv_type_5_0= '#type' ) ) )
            {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7784:1: ( ( (lv_constlevel_0_0= '#constlevel' ) ) | ( (lv_mainpath_1_0= '#mainpath' ) ) | ( (lv_mainlevel_2_0= '#mainlevel' ) ) | ( (lv_secondarypath_3_0= '#secondarypath' ) ) | ( (lv_secondarylevel_4_0= '#secondarylevel' ) ) | ( (lv_type_5_0= '#type' ) ) )
            int alt86=6;
            switch ( input.LA(1) ) {
            case 271:
                {
                alt86=1;
                }
                break;
            case 272:
                {
                alt86=2;
                }
                break;
            case 273:
                {
                alt86=3;
                }
                break;
            case 274:
                {
                alt86=4;
                }
                break;
            case 275:
                {
                alt86=5;
                }
                break;
            case 37:
                {
                alt86=6;
                }
                break;
            default:
                NoViableAltException nvae =
                    new NoViableAltException("", 86, 0, input);

                throw nvae;
            }

            switch (alt86) {
                case 1 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7784:2: ( (lv_constlevel_0_0= '#constlevel' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7784:2: ( (lv_constlevel_0_0= '#constlevel' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7785:1: (lv_constlevel_0_0= '#constlevel' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7785:1: (lv_constlevel_0_0= '#constlevel' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7786:3: lv_constlevel_0_0= '#constlevel'
                    {
                    lv_constlevel_0_0=(Token)match(input,271,FOLLOW_271_in_ruleItemInst218809); 

                            newLeafNode(lv_constlevel_0_0, grammarAccess.getItemInst2Access().getConstlevelConstlevelKeyword_0_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getItemInst2Rule());
                    	        }
                           		setWithLastConsumed(current, "constlevel", true, "#constlevel");
                    	    

                    }


                    }


                    }
                    break;
                case 2 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7800:6: ( (lv_mainpath_1_0= '#mainpath' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7800:6: ( (lv_mainpath_1_0= '#mainpath' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7801:1: (lv_mainpath_1_0= '#mainpath' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7801:1: (lv_mainpath_1_0= '#mainpath' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7802:3: lv_mainpath_1_0= '#mainpath'
                    {
                    lv_mainpath_1_0=(Token)match(input,272,FOLLOW_272_in_ruleItemInst218846); 

                            newLeafNode(lv_mainpath_1_0, grammarAccess.getItemInst2Access().getMainpathMainpathKeyword_1_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getItemInst2Rule());
                    	        }
                           		setWithLastConsumed(current, "mainpath", true, "#mainpath");
                    	    

                    }


                    }


                    }
                    break;
                case 3 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7816:6: ( (lv_mainlevel_2_0= '#mainlevel' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7816:6: ( (lv_mainlevel_2_0= '#mainlevel' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7817:1: (lv_mainlevel_2_0= '#mainlevel' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7817:1: (lv_mainlevel_2_0= '#mainlevel' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7818:3: lv_mainlevel_2_0= '#mainlevel'
                    {
                    lv_mainlevel_2_0=(Token)match(input,273,FOLLOW_273_in_ruleItemInst218883); 

                            newLeafNode(lv_mainlevel_2_0, grammarAccess.getItemInst2Access().getMainlevelMainlevelKeyword_2_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getItemInst2Rule());
                    	        }
                           		setWithLastConsumed(current, "mainlevel", true, "#mainlevel");
                    	    

                    }


                    }


                    }
                    break;
                case 4 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7832:6: ( (lv_secondarypath_3_0= '#secondarypath' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7832:6: ( (lv_secondarypath_3_0= '#secondarypath' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7833:1: (lv_secondarypath_3_0= '#secondarypath' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7833:1: (lv_secondarypath_3_0= '#secondarypath' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7834:3: lv_secondarypath_3_0= '#secondarypath'
                    {
                    lv_secondarypath_3_0=(Token)match(input,274,FOLLOW_274_in_ruleItemInst218920); 

                            newLeafNode(lv_secondarypath_3_0, grammarAccess.getItemInst2Access().getSecondarypathSecondarypathKeyword_3_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getItemInst2Rule());
                    	        }
                           		setWithLastConsumed(current, "secondarypath", true, "#secondarypath");
                    	    

                    }


                    }


                    }
                    break;
                case 5 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7848:6: ( (lv_secondarylevel_4_0= '#secondarylevel' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7848:6: ( (lv_secondarylevel_4_0= '#secondarylevel' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7849:1: (lv_secondarylevel_4_0= '#secondarylevel' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7849:1: (lv_secondarylevel_4_0= '#secondarylevel' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7850:3: lv_secondarylevel_4_0= '#secondarylevel'
                    {
                    lv_secondarylevel_4_0=(Token)match(input,275,FOLLOW_275_in_ruleItemInst218957); 

                            newLeafNode(lv_secondarylevel_4_0, grammarAccess.getItemInst2Access().getSecondarylevelSecondarylevelKeyword_4_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getItemInst2Rule());
                    	        }
                           		setWithLastConsumed(current, "secondarylevel", true, "#secondarylevel");
                    	    

                    }


                    }


                    }
                    break;
                case 6 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7864:6: ( (lv_type_5_0= '#type' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7864:6: ( (lv_type_5_0= '#type' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7865:1: (lv_type_5_0= '#type' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7865:1: (lv_type_5_0= '#type' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7866:3: lv_type_5_0= '#type'
                    {
                    lv_type_5_0=(Token)match(input,37,FOLLOW_37_in_ruleItemInst218994); 

                            newLeafNode(lv_type_5_0, grammarAccess.getItemInst2Access().getTypeTypeKeyword_5_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getItemInst2Rule());
                    	        }
                           		setWithLastConsumed(current, "type", true, "#type");
                    	    

                    }


                    }


                    }
                    break;

            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleItemInst2"


    // $ANTLR start "entryRuleItemInst3"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7887:1: entryRuleItemInst3 returns [EObject current=null] : iv_ruleItemInst3= ruleItemInst3 EOF ;
    public final EObject entryRuleItemInst3() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleItemInst3 = null;


        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7888:2: (iv_ruleItemInst3= ruleItemInst3 EOF )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7889:2: iv_ruleItemInst3= ruleItemInst3 EOF
            {
             newCompositeNode(grammarAccess.getItemInst3Rule()); 
            pushFollow(FOLLOW_ruleItemInst3_in_entryRuleItemInst319043);
            iv_ruleItemInst3=ruleItemInst3();

            state._fsp--;

             current =iv_ruleItemInst3; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleItemInst319053); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleItemInst3"


    // $ANTLR start "ruleItemInst3"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7896:1: ruleItemInst3 returns [EObject current=null] : ( ( (lv_copyspr_0_0= '#copyspr' ) ) | ( (lv_weapon_1_0= '#weapon' ) ) ) ;
    public final EObject ruleItemInst3() throws RecognitionException {
        EObject current = null;

        Token lv_copyspr_0_0=null;
        Token lv_weapon_1_0=null;

         enterRule(); 
            
        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7899:28: ( ( ( (lv_copyspr_0_0= '#copyspr' ) ) | ( (lv_weapon_1_0= '#weapon' ) ) ) )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7900:1: ( ( (lv_copyspr_0_0= '#copyspr' ) ) | ( (lv_weapon_1_0= '#weapon' ) ) )
            {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7900:1: ( ( (lv_copyspr_0_0= '#copyspr' ) ) | ( (lv_weapon_1_0= '#weapon' ) ) )
            int alt87=2;
            int LA87_0 = input.LA(1);

            if ( (LA87_0==105) ) {
                alt87=1;
            }
            else if ( (LA87_0==230) ) {
                alt87=2;
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("", 87, 0, input);

                throw nvae;
            }
            switch (alt87) {
                case 1 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7900:2: ( (lv_copyspr_0_0= '#copyspr' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7900:2: ( (lv_copyspr_0_0= '#copyspr' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7901:1: (lv_copyspr_0_0= '#copyspr' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7901:1: (lv_copyspr_0_0= '#copyspr' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7902:3: lv_copyspr_0_0= '#copyspr'
                    {
                    lv_copyspr_0_0=(Token)match(input,105,FOLLOW_105_in_ruleItemInst319096); 

                            newLeafNode(lv_copyspr_0_0, grammarAccess.getItemInst3Access().getCopysprCopysprKeyword_0_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getItemInst3Rule());
                    	        }
                           		setWithLastConsumed(current, "copyspr", true, "#copyspr");
                    	    

                    }


                    }


                    }
                    break;
                case 2 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7916:6: ( (lv_weapon_1_0= '#weapon' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7916:6: ( (lv_weapon_1_0= '#weapon' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7917:1: (lv_weapon_1_0= '#weapon' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7917:1: (lv_weapon_1_0= '#weapon' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7918:3: lv_weapon_1_0= '#weapon'
                    {
                    lv_weapon_1_0=(Token)match(input,230,FOLLOW_230_in_ruleItemInst319133); 

                            newLeafNode(lv_weapon_1_0, grammarAccess.getItemInst3Access().getWeaponWeaponKeyword_1_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getItemInst3Rule());
                    	        }
                           		setWithLastConsumed(current, "weapon", true, "#weapon");
                    	    

                    }


                    }


                    }
                    break;

            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleItemInst3"


    // $ANTLR start "entryRuleName"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7939:1: entryRuleName returns [EObject current=null] : iv_ruleName= ruleName EOF ;
    public final EObject entryRuleName() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleName = null;


        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7940:2: (iv_ruleName= ruleName EOF )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7941:2: iv_ruleName= ruleName EOF
            {
             newCompositeNode(grammarAccess.getNameRule()); 
            pushFollow(FOLLOW_ruleName_in_entryRuleName19182);
            iv_ruleName=ruleName();

            state._fsp--;

             current =iv_ruleName; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleName19192); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleName"


    // $ANTLR start "ruleName"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7948:1: ruleName returns [EObject current=null] : this_SelectName_0= ruleSelectName ;
    public final EObject ruleName() throws RecognitionException {
        EObject current = null;

        EObject this_SelectName_0 = null;


         enterRule(); 
            
        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7951:28: (this_SelectName_0= ruleSelectName )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7953:5: this_SelectName_0= ruleSelectName
            {
             
                    newCompositeNode(grammarAccess.getNameAccess().getSelectNameParserRuleCall()); 
                
            pushFollow(FOLLOW_ruleSelectName_in_ruleName19238);
            this_SelectName_0=ruleSelectName();

            state._fsp--;

             
                    current = this_SelectName_0; 
                    afterParserOrEnumRuleCall();
                

            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleName"


    // $ANTLR start "entryRuleSelectName"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7969:1: entryRuleSelectName returns [EObject current=null] : iv_ruleSelectName= ruleSelectName EOF ;
    public final EObject entryRuleSelectName() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleSelectName = null;


        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7970:2: (iv_ruleSelectName= ruleSelectName EOF )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7971:2: iv_ruleSelectName= ruleSelectName EOF
            {
             newCompositeNode(grammarAccess.getSelectNameRule()); 
            pushFollow(FOLLOW_ruleSelectName_in_entryRuleSelectName19272);
            iv_ruleSelectName=ruleSelectName();

            state._fsp--;

             current =iv_ruleSelectName; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleSelectName19282); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleSelectName"


    // $ANTLR start "ruleSelectName"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7978:1: ruleSelectName returns [EObject current=null] : (otherlv_0= '#selectnametype' ( (lv_value_1_0= RULE_INT ) ) (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )* ( (lv_mods_3_0= ruleNameMods ) )* otherlv_4= '#end' ) ;
    public final EObject ruleSelectName() throws RecognitionException {
        EObject current = null;

        Token otherlv_0=null;
        Token lv_value_1_0=null;
        Token this_FREE_FORM_COMMENT_2=null;
        Token otherlv_4=null;
        EObject lv_mods_3_0 = null;


         enterRule(); 
            
        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7981:28: ( (otherlv_0= '#selectnametype' ( (lv_value_1_0= RULE_INT ) ) (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )* ( (lv_mods_3_0= ruleNameMods ) )* otherlv_4= '#end' ) )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7982:1: (otherlv_0= '#selectnametype' ( (lv_value_1_0= RULE_INT ) ) (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )* ( (lv_mods_3_0= ruleNameMods ) )* otherlv_4= '#end' )
            {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7982:1: (otherlv_0= '#selectnametype' ( (lv_value_1_0= RULE_INT ) ) (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )* ( (lv_mods_3_0= ruleNameMods ) )* otherlv_4= '#end' )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7982:3: otherlv_0= '#selectnametype' ( (lv_value_1_0= RULE_INT ) ) (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )* ( (lv_mods_3_0= ruleNameMods ) )* otherlv_4= '#end'
            {
            otherlv_0=(Token)match(input,276,FOLLOW_276_in_ruleSelectName19319); 

                	newLeafNode(otherlv_0, grammarAccess.getSelectNameAccess().getSelectnametypeKeyword_0());
                
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7986:1: ( (lv_value_1_0= RULE_INT ) )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7987:1: (lv_value_1_0= RULE_INT )
            {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7987:1: (lv_value_1_0= RULE_INT )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:7988:3: lv_value_1_0= RULE_INT
            {
            lv_value_1_0=(Token)match(input,RULE_INT,FOLLOW_RULE_INT_in_ruleSelectName19336); 

            			newLeafNode(lv_value_1_0, grammarAccess.getSelectNameAccess().getValueINTTerminalRuleCall_1_0()); 
            		

            	        if (current==null) {
            	            current = createModelElement(grammarAccess.getSelectNameRule());
            	        }
                   		setWithLastConsumed(
                   			current, 
                   			"value",
                    		lv_value_1_0, 
                    		"INT");
            	    

            }


            }

            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8004:2: (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )*
            loop88:
            do {
                int alt88=2;
                int LA88_0 = input.LA(1);

                if ( (LA88_0==RULE_FREE_FORM_COMMENT) ) {
                    alt88=1;
                }


                switch (alt88) {
            	case 1 :
            	    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8004:3: this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT
            	    {
            	    this_FREE_FORM_COMMENT_2=(Token)match(input,RULE_FREE_FORM_COMMENT,FOLLOW_RULE_FREE_FORM_COMMENT_in_ruleSelectName19353); 
            	     
            	        newLeafNode(this_FREE_FORM_COMMENT_2, grammarAccess.getSelectNameAccess().getFREE_FORM_COMMENTTerminalRuleCall_2()); 
            	        

            	    }
            	    break;

            	default :
            	    break loop88;
                }
            } while (true);

            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8008:3: ( (lv_mods_3_0= ruleNameMods ) )*
            loop89:
            do {
                int alt89=2;
                int LA89_0 = input.LA(1);

                if ( (LA89_0==167||LA89_0==277) ) {
                    alt89=1;
                }


                switch (alt89) {
            	case 1 :
            	    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8009:1: (lv_mods_3_0= ruleNameMods )
            	    {
            	    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8009:1: (lv_mods_3_0= ruleNameMods )
            	    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8010:3: lv_mods_3_0= ruleNameMods
            	    {
            	     
            	    	        newCompositeNode(grammarAccess.getSelectNameAccess().getModsNameModsParserRuleCall_3_0()); 
            	    	    
            	    pushFollow(FOLLOW_ruleNameMods_in_ruleSelectName19375);
            	    lv_mods_3_0=ruleNameMods();

            	    state._fsp--;


            	    	        if (current==null) {
            	    	            current = createModelElementForParent(grammarAccess.getSelectNameRule());
            	    	        }
            	           		add(
            	           			current, 
            	           			"mods",
            	            		lv_mods_3_0, 
            	            		"NameMods");
            	    	        afterParserOrEnumRuleCall();
            	    	    

            	    }


            	    }
            	    break;

            	default :
            	    break loop89;
                }
            } while (true);

            otherlv_4=(Token)match(input,15,FOLLOW_15_in_ruleSelectName19388); 

                	newLeafNode(otherlv_4, grammarAccess.getSelectNameAccess().getEndKeyword_4());
                

            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleSelectName"


    // $ANTLR start "entryRuleNameMods"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8038:1: entryRuleNameMods returns [EObject current=null] : iv_ruleNameMods= ruleNameMods EOF ;
    public final EObject entryRuleNameMods() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleNameMods = null;


        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8039:2: (iv_ruleNameMods= ruleNameMods EOF )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8040:2: iv_ruleNameMods= ruleNameMods EOF
            {
             newCompositeNode(grammarAccess.getNameModsRule()); 
            pushFollow(FOLLOW_ruleNameMods_in_entryRuleNameMods19424);
            iv_ruleNameMods=ruleNameMods();

            state._fsp--;

             current =iv_ruleNameMods; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleNameMods19434); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleNameMods"


    // $ANTLR start "ruleNameMods"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8047:1: ruleNameMods returns [EObject current=null] : (this_NamePattern1_0= ruleNamePattern1 | this_NamePattern2_1= ruleNamePattern2 ) ;
    public final EObject ruleNameMods() throws RecognitionException {
        EObject current = null;

        EObject this_NamePattern1_0 = null;

        EObject this_NamePattern2_1 = null;


         enterRule(); 
            
        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8050:28: ( (this_NamePattern1_0= ruleNamePattern1 | this_NamePattern2_1= ruleNamePattern2 ) )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8051:1: (this_NamePattern1_0= ruleNamePattern1 | this_NamePattern2_1= ruleNamePattern2 )
            {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8051:1: (this_NamePattern1_0= ruleNamePattern1 | this_NamePattern2_1= ruleNamePattern2 )
            int alt90=2;
            int LA90_0 = input.LA(1);

            if ( (LA90_0==277) ) {
                alt90=1;
            }
            else if ( (LA90_0==167) ) {
                alt90=2;
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("", 90, 0, input);

                throw nvae;
            }
            switch (alt90) {
                case 1 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8052:5: this_NamePattern1_0= ruleNamePattern1
                    {
                     
                            newCompositeNode(grammarAccess.getNameModsAccess().getNamePattern1ParserRuleCall_0()); 
                        
                    pushFollow(FOLLOW_ruleNamePattern1_in_ruleNameMods19481);
                    this_NamePattern1_0=ruleNamePattern1();

                    state._fsp--;

                     
                            current = this_NamePattern1_0; 
                            afterParserOrEnumRuleCall();
                        

                    }
                    break;
                case 2 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8062:5: this_NamePattern2_1= ruleNamePattern2
                    {
                     
                            newCompositeNode(grammarAccess.getNameModsAccess().getNamePattern2ParserRuleCall_1()); 
                        
                    pushFollow(FOLLOW_ruleNamePattern2_in_ruleNameMods19508);
                    this_NamePattern2_1=ruleNamePattern2();

                    state._fsp--;

                     
                            current = this_NamePattern2_1; 
                            afterParserOrEnumRuleCall();
                        

                    }
                    break;

            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleNameMods"


    // $ANTLR start "entryRuleNamePattern1"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8078:1: entryRuleNamePattern1 returns [EObject current=null] : iv_ruleNamePattern1= ruleNamePattern1 EOF ;
    public final EObject entryRuleNamePattern1() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleNamePattern1 = null;


        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8079:2: (iv_ruleNamePattern1= ruleNamePattern1 EOF )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8080:2: iv_ruleNamePattern1= ruleNamePattern1 EOF
            {
             newCompositeNode(grammarAccess.getNamePattern1Rule()); 
            pushFollow(FOLLOW_ruleNamePattern1_in_entryRuleNamePattern119543);
            iv_ruleNamePattern1=ruleNamePattern1();

            state._fsp--;

             current =iv_ruleNamePattern1; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleNamePattern119553); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleNamePattern1"


    // $ANTLR start "ruleNamePattern1"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8087:1: ruleNamePattern1 returns [EObject current=null] : (this_NameInst1_0= ruleNameInst1 ( (lv_value_1_0= RULE_STRING ) ) (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )* ) ;
    public final EObject ruleNamePattern1() throws RecognitionException {
        EObject current = null;

        Token lv_value_1_0=null;
        Token this_FREE_FORM_COMMENT_2=null;
        EObject this_NameInst1_0 = null;


         enterRule(); 
            
        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8090:28: ( (this_NameInst1_0= ruleNameInst1 ( (lv_value_1_0= RULE_STRING ) ) (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )* ) )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8091:1: (this_NameInst1_0= ruleNameInst1 ( (lv_value_1_0= RULE_STRING ) ) (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )* )
            {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8091:1: (this_NameInst1_0= ruleNameInst1 ( (lv_value_1_0= RULE_STRING ) ) (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )* )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8092:5: this_NameInst1_0= ruleNameInst1 ( (lv_value_1_0= RULE_STRING ) ) (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )*
            {
             
                    newCompositeNode(grammarAccess.getNamePattern1Access().getNameInst1ParserRuleCall_0()); 
                
            pushFollow(FOLLOW_ruleNameInst1_in_ruleNamePattern119600);
            this_NameInst1_0=ruleNameInst1();

            state._fsp--;

             
                    current = this_NameInst1_0; 
                    afterParserOrEnumRuleCall();
                
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8100:1: ( (lv_value_1_0= RULE_STRING ) )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8101:1: (lv_value_1_0= RULE_STRING )
            {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8101:1: (lv_value_1_0= RULE_STRING )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8102:3: lv_value_1_0= RULE_STRING
            {
            lv_value_1_0=(Token)match(input,RULE_STRING,FOLLOW_RULE_STRING_in_ruleNamePattern119616); 

            			newLeafNode(lv_value_1_0, grammarAccess.getNamePattern1Access().getValueSTRINGTerminalRuleCall_1_0()); 
            		

            	        if (current==null) {
            	            current = createModelElement(grammarAccess.getNamePattern1Rule());
            	        }
                   		setWithLastConsumed(
                   			current, 
                   			"value",
                    		lv_value_1_0, 
                    		"STRING");
            	    

            }


            }

            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8118:2: (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )*
            loop91:
            do {
                int alt91=2;
                int LA91_0 = input.LA(1);

                if ( (LA91_0==RULE_FREE_FORM_COMMENT) ) {
                    alt91=1;
                }


                switch (alt91) {
            	case 1 :
            	    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8118:3: this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT
            	    {
            	    this_FREE_FORM_COMMENT_2=(Token)match(input,RULE_FREE_FORM_COMMENT,FOLLOW_RULE_FREE_FORM_COMMENT_in_ruleNamePattern119633); 
            	     
            	        newLeafNode(this_FREE_FORM_COMMENT_2, grammarAccess.getNamePattern1Access().getFREE_FORM_COMMENTTerminalRuleCall_2()); 
            	        

            	    }
            	    break;

            	default :
            	    break loop91;
                }
            } while (true);


            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleNamePattern1"


    // $ANTLR start "entryRuleNamePattern2"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8130:1: entryRuleNamePattern2 returns [EObject current=null] : iv_ruleNamePattern2= ruleNamePattern2 EOF ;
    public final EObject entryRuleNamePattern2() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleNamePattern2 = null;


        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8131:2: (iv_ruleNamePattern2= ruleNamePattern2 EOF )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8132:2: iv_ruleNamePattern2= ruleNamePattern2 EOF
            {
             newCompositeNode(grammarAccess.getNamePattern2Rule()); 
            pushFollow(FOLLOW_ruleNamePattern2_in_entryRuleNamePattern219670);
            iv_ruleNamePattern2=ruleNamePattern2();

            state._fsp--;

             current =iv_ruleNamePattern2; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleNamePattern219680); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleNamePattern2"


    // $ANTLR start "ruleNamePattern2"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8139:1: ruleNamePattern2 returns [EObject current=null] : (this_NameInst2_0= ruleNameInst2 (this_FREE_FORM_COMMENT_1= RULE_FREE_FORM_COMMENT )* ) ;
    public final EObject ruleNamePattern2() throws RecognitionException {
        EObject current = null;

        Token this_FREE_FORM_COMMENT_1=null;
        EObject this_NameInst2_0 = null;


         enterRule(); 
            
        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8142:28: ( (this_NameInst2_0= ruleNameInst2 (this_FREE_FORM_COMMENT_1= RULE_FREE_FORM_COMMENT )* ) )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8143:1: (this_NameInst2_0= ruleNameInst2 (this_FREE_FORM_COMMENT_1= RULE_FREE_FORM_COMMENT )* )
            {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8143:1: (this_NameInst2_0= ruleNameInst2 (this_FREE_FORM_COMMENT_1= RULE_FREE_FORM_COMMENT )* )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8144:5: this_NameInst2_0= ruleNameInst2 (this_FREE_FORM_COMMENT_1= RULE_FREE_FORM_COMMENT )*
            {
             
                    newCompositeNode(grammarAccess.getNamePattern2Access().getNameInst2ParserRuleCall_0()); 
                
            pushFollow(FOLLOW_ruleNameInst2_in_ruleNamePattern219727);
            this_NameInst2_0=ruleNameInst2();

            state._fsp--;

             
                    current = this_NameInst2_0; 
                    afterParserOrEnumRuleCall();
                
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8152:1: (this_FREE_FORM_COMMENT_1= RULE_FREE_FORM_COMMENT )*
            loop92:
            do {
                int alt92=2;
                int LA92_0 = input.LA(1);

                if ( (LA92_0==RULE_FREE_FORM_COMMENT) ) {
                    alt92=1;
                }


                switch (alt92) {
            	case 1 :
            	    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8152:2: this_FREE_FORM_COMMENT_1= RULE_FREE_FORM_COMMENT
            	    {
            	    this_FREE_FORM_COMMENT_1=(Token)match(input,RULE_FREE_FORM_COMMENT,FOLLOW_RULE_FREE_FORM_COMMENT_in_ruleNamePattern219738); 
            	     
            	        newLeafNode(this_FREE_FORM_COMMENT_1, grammarAccess.getNamePattern2Access().getFREE_FORM_COMMENTTerminalRuleCall_1()); 
            	        

            	    }
            	    break;

            	default :
            	    break loop92;
                }
            } while (true);


            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleNamePattern2"


    // $ANTLR start "entryRuleNameInst1"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8164:1: entryRuleNameInst1 returns [EObject current=null] : iv_ruleNameInst1= ruleNameInst1 EOF ;
    public final EObject entryRuleNameInst1() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleNameInst1 = null;


        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8165:2: (iv_ruleNameInst1= ruleNameInst1 EOF )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8166:2: iv_ruleNameInst1= ruleNameInst1 EOF
            {
             newCompositeNode(grammarAccess.getNameInst1Rule()); 
            pushFollow(FOLLOW_ruleNameInst1_in_entryRuleNameInst119775);
            iv_ruleNameInst1=ruleNameInst1();

            state._fsp--;

             current =iv_ruleNameInst1; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleNameInst119785); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleNameInst1"


    // $ANTLR start "ruleNameInst1"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8173:1: ruleNameInst1 returns [EObject current=null] : ( (lv_name_0_0= '#addname' ) ) ;
    public final EObject ruleNameInst1() throws RecognitionException {
        EObject current = null;

        Token lv_name_0_0=null;

         enterRule(); 
            
        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8176:28: ( ( (lv_name_0_0= '#addname' ) ) )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8177:1: ( (lv_name_0_0= '#addname' ) )
            {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8177:1: ( (lv_name_0_0= '#addname' ) )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8178:1: (lv_name_0_0= '#addname' )
            {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8178:1: (lv_name_0_0= '#addname' )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8179:3: lv_name_0_0= '#addname'
            {
            lv_name_0_0=(Token)match(input,277,FOLLOW_277_in_ruleNameInst119827); 

                    newLeafNode(lv_name_0_0, grammarAccess.getNameInst1Access().getNameAddnameKeyword_0());
                

            	        if (current==null) {
            	            current = createModelElement(grammarAccess.getNameInst1Rule());
            	        }
                   		setWithLastConsumed(current, "name", true, "#addname");
            	    

            }


            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleNameInst1"


    // $ANTLR start "entryRuleNameInst2"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8200:1: entryRuleNameInst2 returns [EObject current=null] : iv_ruleNameInst2= ruleNameInst2 EOF ;
    public final EObject entryRuleNameInst2() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleNameInst2 = null;


        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8201:2: (iv_ruleNameInst2= ruleNameInst2 EOF )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8202:2: iv_ruleNameInst2= ruleNameInst2 EOF
            {
             newCompositeNode(grammarAccess.getNameInst2Rule()); 
            pushFollow(FOLLOW_ruleNameInst2_in_entryRuleNameInst219875);
            iv_ruleNameInst2=ruleNameInst2();

            state._fsp--;

             current =iv_ruleNameInst2; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleNameInst219885); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleNameInst2"


    // $ANTLR start "ruleNameInst2"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8209:1: ruleNameInst2 returns [EObject current=null] : ( (lv_clear_0_0= '#clear' ) ) ;
    public final EObject ruleNameInst2() throws RecognitionException {
        EObject current = null;

        Token lv_clear_0_0=null;

         enterRule(); 
            
        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8212:28: ( ( (lv_clear_0_0= '#clear' ) ) )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8213:1: ( (lv_clear_0_0= '#clear' ) )
            {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8213:1: ( (lv_clear_0_0= '#clear' ) )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8214:1: (lv_clear_0_0= '#clear' )
            {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8214:1: (lv_clear_0_0= '#clear' )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8215:3: lv_clear_0_0= '#clear'
            {
            lv_clear_0_0=(Token)match(input,167,FOLLOW_167_in_ruleNameInst219927); 

                    newLeafNode(lv_clear_0_0, grammarAccess.getNameInst2Access().getClearClearKeyword_0());
                

            	        if (current==null) {
            	            current = createModelElement(grammarAccess.getNameInst2Rule());
            	        }
                   		setWithLastConsumed(current, "clear", true, "#clear");
            	    

            }


            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleNameInst2"


    // $ANTLR start "entryRuleSite"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8236:1: entryRuleSite returns [EObject current=null] : iv_ruleSite= ruleSite EOF ;
    public final EObject entryRuleSite() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleSite = null;


        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8237:2: (iv_ruleSite= ruleSite EOF )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8238:2: iv_ruleSite= ruleSite EOF
            {
             newCompositeNode(grammarAccess.getSiteRule()); 
            pushFollow(FOLLOW_ruleSite_in_entryRuleSite19975);
            iv_ruleSite=ruleSite();

            state._fsp--;

             current =iv_ruleSite; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleSite19985); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleSite"


    // $ANTLR start "ruleSite"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8245:1: ruleSite returns [EObject current=null] : (this_SelectSiteById_0= ruleSelectSiteById | this_SelectSiteByName_1= ruleSelectSiteByName | this_NewSite_2= ruleNewSite ) ;
    public final EObject ruleSite() throws RecognitionException {
        EObject current = null;

        EObject this_SelectSiteById_0 = null;

        EObject this_SelectSiteByName_1 = null;

        EObject this_NewSite_2 = null;


         enterRule(); 
            
        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8248:28: ( (this_SelectSiteById_0= ruleSelectSiteById | this_SelectSiteByName_1= ruleSelectSiteByName | this_NewSite_2= ruleNewSite ) )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8249:1: (this_SelectSiteById_0= ruleSelectSiteById | this_SelectSiteByName_1= ruleSelectSiteByName | this_NewSite_2= ruleNewSite )
            {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8249:1: (this_SelectSiteById_0= ruleSelectSiteById | this_SelectSiteByName_1= ruleSelectSiteByName | this_NewSite_2= ruleNewSite )
            int alt93=3;
            int LA93_0 = input.LA(1);

            if ( (LA93_0==278) ) {
                int LA93_1 = input.LA(2);

                if ( (LA93_1==RULE_STRING) ) {
                    alt93=2;
                }
                else if ( (LA93_1==RULE_INT) ) {
                    alt93=1;
                }
                else {
                    NoViableAltException nvae =
                        new NoViableAltException("", 93, 1, input);

                    throw nvae;
                }
            }
            else if ( (LA93_0==279) ) {
                alt93=3;
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("", 93, 0, input);

                throw nvae;
            }
            switch (alt93) {
                case 1 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8250:5: this_SelectSiteById_0= ruleSelectSiteById
                    {
                     
                            newCompositeNode(grammarAccess.getSiteAccess().getSelectSiteByIdParserRuleCall_0()); 
                        
                    pushFollow(FOLLOW_ruleSelectSiteById_in_ruleSite20032);
                    this_SelectSiteById_0=ruleSelectSiteById();

                    state._fsp--;

                     
                            current = this_SelectSiteById_0; 
                            afterParserOrEnumRuleCall();
                        

                    }
                    break;
                case 2 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8260:5: this_SelectSiteByName_1= ruleSelectSiteByName
                    {
                     
                            newCompositeNode(grammarAccess.getSiteAccess().getSelectSiteByNameParserRuleCall_1()); 
                        
                    pushFollow(FOLLOW_ruleSelectSiteByName_in_ruleSite20059);
                    this_SelectSiteByName_1=ruleSelectSiteByName();

                    state._fsp--;

                     
                            current = this_SelectSiteByName_1; 
                            afterParserOrEnumRuleCall();
                        

                    }
                    break;
                case 3 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8270:5: this_NewSite_2= ruleNewSite
                    {
                     
                            newCompositeNode(grammarAccess.getSiteAccess().getNewSiteParserRuleCall_2()); 
                        
                    pushFollow(FOLLOW_ruleNewSite_in_ruleSite20086);
                    this_NewSite_2=ruleNewSite();

                    state._fsp--;

                     
                            current = this_NewSite_2; 
                            afterParserOrEnumRuleCall();
                        

                    }
                    break;

            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleSite"


    // $ANTLR start "entryRuleSelectSiteById"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8286:1: entryRuleSelectSiteById returns [EObject current=null] : iv_ruleSelectSiteById= ruleSelectSiteById EOF ;
    public final EObject entryRuleSelectSiteById() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleSelectSiteById = null;


        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8287:2: (iv_ruleSelectSiteById= ruleSelectSiteById EOF )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8288:2: iv_ruleSelectSiteById= ruleSelectSiteById EOF
            {
             newCompositeNode(grammarAccess.getSelectSiteByIdRule()); 
            pushFollow(FOLLOW_ruleSelectSiteById_in_entryRuleSelectSiteById20121);
            iv_ruleSelectSiteById=ruleSelectSiteById();

            state._fsp--;

             current =iv_ruleSelectSiteById; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleSelectSiteById20131); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleSelectSiteById"


    // $ANTLR start "ruleSelectSiteById"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8295:1: ruleSelectSiteById returns [EObject current=null] : (otherlv_0= '#selectsite' ( (lv_value_1_0= RULE_INT ) ) (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )* ( (lv_mods_3_0= ruleSiteMods ) )* otherlv_4= '#end' ) ;
    public final EObject ruleSelectSiteById() throws RecognitionException {
        EObject current = null;

        Token otherlv_0=null;
        Token lv_value_1_0=null;
        Token this_FREE_FORM_COMMENT_2=null;
        Token otherlv_4=null;
        EObject lv_mods_3_0 = null;


         enterRule(); 
            
        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8298:28: ( (otherlv_0= '#selectsite' ( (lv_value_1_0= RULE_INT ) ) (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )* ( (lv_mods_3_0= ruleSiteMods ) )* otherlv_4= '#end' ) )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8299:1: (otherlv_0= '#selectsite' ( (lv_value_1_0= RULE_INT ) ) (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )* ( (lv_mods_3_0= ruleSiteMods ) )* otherlv_4= '#end' )
            {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8299:1: (otherlv_0= '#selectsite' ( (lv_value_1_0= RULE_INT ) ) (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )* ( (lv_mods_3_0= ruleSiteMods ) )* otherlv_4= '#end' )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8299:3: otherlv_0= '#selectsite' ( (lv_value_1_0= RULE_INT ) ) (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )* ( (lv_mods_3_0= ruleSiteMods ) )* otherlv_4= '#end'
            {
            otherlv_0=(Token)match(input,278,FOLLOW_278_in_ruleSelectSiteById20168); 

                	newLeafNode(otherlv_0, grammarAccess.getSelectSiteByIdAccess().getSelectsiteKeyword_0());
                
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8303:1: ( (lv_value_1_0= RULE_INT ) )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8304:1: (lv_value_1_0= RULE_INT )
            {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8304:1: (lv_value_1_0= RULE_INT )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8305:3: lv_value_1_0= RULE_INT
            {
            lv_value_1_0=(Token)match(input,RULE_INT,FOLLOW_RULE_INT_in_ruleSelectSiteById20185); 

            			newLeafNode(lv_value_1_0, grammarAccess.getSelectSiteByIdAccess().getValueINTTerminalRuleCall_1_0()); 
            		

            	        if (current==null) {
            	            current = createModelElement(grammarAccess.getSelectSiteByIdRule());
            	        }
                   		setWithLastConsumed(
                   			current, 
                   			"value",
                    		lv_value_1_0, 
                    		"INT");
            	    

            }


            }

            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8321:2: (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )*
            loop94:
            do {
                int alt94=2;
                int LA94_0 = input.LA(1);

                if ( (LA94_0==RULE_FREE_FORM_COMMENT) ) {
                    alt94=1;
                }


                switch (alt94) {
            	case 1 :
            	    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8321:3: this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT
            	    {
            	    this_FREE_FORM_COMMENT_2=(Token)match(input,RULE_FREE_FORM_COMMENT,FOLLOW_RULE_FREE_FORM_COMMENT_in_ruleSelectSiteById20202); 
            	     
            	        newLeafNode(this_FREE_FORM_COMMENT_2, grammarAccess.getSelectSiteByIdAccess().getFREE_FORM_COMMENTTerminalRuleCall_2()); 
            	        

            	    }
            	    break;

            	default :
            	    break loop94;
                }
            } while (true);

            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8325:3: ( (lv_mods_3_0= ruleSiteMods ) )*
            loop95:
            do {
                int alt95=2;
                int LA95_0 = input.LA(1);

                if ( (LA95_0==36||LA95_0==167||LA95_0==200||LA95_0==207||LA95_0==265||(LA95_0>=280 && LA95_0<=303)) ) {
                    alt95=1;
                }


                switch (alt95) {
            	case 1 :
            	    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8326:1: (lv_mods_3_0= ruleSiteMods )
            	    {
            	    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8326:1: (lv_mods_3_0= ruleSiteMods )
            	    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8327:3: lv_mods_3_0= ruleSiteMods
            	    {
            	     
            	    	        newCompositeNode(grammarAccess.getSelectSiteByIdAccess().getModsSiteModsParserRuleCall_3_0()); 
            	    	    
            	    pushFollow(FOLLOW_ruleSiteMods_in_ruleSelectSiteById20224);
            	    lv_mods_3_0=ruleSiteMods();

            	    state._fsp--;


            	    	        if (current==null) {
            	    	            current = createModelElementForParent(grammarAccess.getSelectSiteByIdRule());
            	    	        }
            	           		add(
            	           			current, 
            	           			"mods",
            	            		lv_mods_3_0, 
            	            		"SiteMods");
            	    	        afterParserOrEnumRuleCall();
            	    	    

            	    }


            	    }
            	    break;

            	default :
            	    break loop95;
                }
            } while (true);

            otherlv_4=(Token)match(input,15,FOLLOW_15_in_ruleSelectSiteById20237); 

                	newLeafNode(otherlv_4, grammarAccess.getSelectSiteByIdAccess().getEndKeyword_4());
                

            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleSelectSiteById"


    // $ANTLR start "entryRuleSelectSiteByName"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8355:1: entryRuleSelectSiteByName returns [EObject current=null] : iv_ruleSelectSiteByName= ruleSelectSiteByName EOF ;
    public final EObject entryRuleSelectSiteByName() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleSelectSiteByName = null;


        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8356:2: (iv_ruleSelectSiteByName= ruleSelectSiteByName EOF )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8357:2: iv_ruleSelectSiteByName= ruleSelectSiteByName EOF
            {
             newCompositeNode(grammarAccess.getSelectSiteByNameRule()); 
            pushFollow(FOLLOW_ruleSelectSiteByName_in_entryRuleSelectSiteByName20273);
            iv_ruleSelectSiteByName=ruleSelectSiteByName();

            state._fsp--;

             current =iv_ruleSelectSiteByName; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleSelectSiteByName20283); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleSelectSiteByName"


    // $ANTLR start "ruleSelectSiteByName"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8364:1: ruleSelectSiteByName returns [EObject current=null] : (otherlv_0= '#selectsite' ( (lv_value_1_0= RULE_STRING ) ) (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )* ( (lv_mods_3_0= ruleSiteMods ) )* otherlv_4= '#end' ) ;
    public final EObject ruleSelectSiteByName() throws RecognitionException {
        EObject current = null;

        Token otherlv_0=null;
        Token lv_value_1_0=null;
        Token this_FREE_FORM_COMMENT_2=null;
        Token otherlv_4=null;
        EObject lv_mods_3_0 = null;


         enterRule(); 
            
        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8367:28: ( (otherlv_0= '#selectsite' ( (lv_value_1_0= RULE_STRING ) ) (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )* ( (lv_mods_3_0= ruleSiteMods ) )* otherlv_4= '#end' ) )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8368:1: (otherlv_0= '#selectsite' ( (lv_value_1_0= RULE_STRING ) ) (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )* ( (lv_mods_3_0= ruleSiteMods ) )* otherlv_4= '#end' )
            {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8368:1: (otherlv_0= '#selectsite' ( (lv_value_1_0= RULE_STRING ) ) (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )* ( (lv_mods_3_0= ruleSiteMods ) )* otherlv_4= '#end' )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8368:3: otherlv_0= '#selectsite' ( (lv_value_1_0= RULE_STRING ) ) (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )* ( (lv_mods_3_0= ruleSiteMods ) )* otherlv_4= '#end'
            {
            otherlv_0=(Token)match(input,278,FOLLOW_278_in_ruleSelectSiteByName20320); 

                	newLeafNode(otherlv_0, grammarAccess.getSelectSiteByNameAccess().getSelectsiteKeyword_0());
                
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8372:1: ( (lv_value_1_0= RULE_STRING ) )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8373:1: (lv_value_1_0= RULE_STRING )
            {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8373:1: (lv_value_1_0= RULE_STRING )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8374:3: lv_value_1_0= RULE_STRING
            {
            lv_value_1_0=(Token)match(input,RULE_STRING,FOLLOW_RULE_STRING_in_ruleSelectSiteByName20337); 

            			newLeafNode(lv_value_1_0, grammarAccess.getSelectSiteByNameAccess().getValueSTRINGTerminalRuleCall_1_0()); 
            		

            	        if (current==null) {
            	            current = createModelElement(grammarAccess.getSelectSiteByNameRule());
            	        }
                   		setWithLastConsumed(
                   			current, 
                   			"value",
                    		lv_value_1_0, 
                    		"STRING");
            	    

            }


            }

            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8390:2: (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )*
            loop96:
            do {
                int alt96=2;
                int LA96_0 = input.LA(1);

                if ( (LA96_0==RULE_FREE_FORM_COMMENT) ) {
                    alt96=1;
                }


                switch (alt96) {
            	case 1 :
            	    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8390:3: this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT
            	    {
            	    this_FREE_FORM_COMMENT_2=(Token)match(input,RULE_FREE_FORM_COMMENT,FOLLOW_RULE_FREE_FORM_COMMENT_in_ruleSelectSiteByName20354); 
            	     
            	        newLeafNode(this_FREE_FORM_COMMENT_2, grammarAccess.getSelectSiteByNameAccess().getFREE_FORM_COMMENTTerminalRuleCall_2()); 
            	        

            	    }
            	    break;

            	default :
            	    break loop96;
                }
            } while (true);

            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8394:3: ( (lv_mods_3_0= ruleSiteMods ) )*
            loop97:
            do {
                int alt97=2;
                int LA97_0 = input.LA(1);

                if ( (LA97_0==36||LA97_0==167||LA97_0==200||LA97_0==207||LA97_0==265||(LA97_0>=280 && LA97_0<=303)) ) {
                    alt97=1;
                }


                switch (alt97) {
            	case 1 :
            	    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8395:1: (lv_mods_3_0= ruleSiteMods )
            	    {
            	    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8395:1: (lv_mods_3_0= ruleSiteMods )
            	    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8396:3: lv_mods_3_0= ruleSiteMods
            	    {
            	     
            	    	        newCompositeNode(grammarAccess.getSelectSiteByNameAccess().getModsSiteModsParserRuleCall_3_0()); 
            	    	    
            	    pushFollow(FOLLOW_ruleSiteMods_in_ruleSelectSiteByName20376);
            	    lv_mods_3_0=ruleSiteMods();

            	    state._fsp--;


            	    	        if (current==null) {
            	    	            current = createModelElementForParent(grammarAccess.getSelectSiteByNameRule());
            	    	        }
            	           		add(
            	           			current, 
            	           			"mods",
            	            		lv_mods_3_0, 
            	            		"SiteMods");
            	    	        afterParserOrEnumRuleCall();
            	    	    

            	    }


            	    }
            	    break;

            	default :
            	    break loop97;
                }
            } while (true);

            otherlv_4=(Token)match(input,15,FOLLOW_15_in_ruleSelectSiteByName20389); 

                	newLeafNode(otherlv_4, grammarAccess.getSelectSiteByNameAccess().getEndKeyword_4());
                

            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleSelectSiteByName"


    // $ANTLR start "entryRuleNewSite"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8424:1: entryRuleNewSite returns [EObject current=null] : iv_ruleNewSite= ruleNewSite EOF ;
    public final EObject entryRuleNewSite() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleNewSite = null;


        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8425:2: (iv_ruleNewSite= ruleNewSite EOF )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8426:2: iv_ruleNewSite= ruleNewSite EOF
            {
             newCompositeNode(grammarAccess.getNewSiteRule()); 
            pushFollow(FOLLOW_ruleNewSite_in_entryRuleNewSite20425);
            iv_ruleNewSite=ruleNewSite();

            state._fsp--;

             current =iv_ruleNewSite; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleNewSite20435); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleNewSite"


    // $ANTLR start "ruleNewSite"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8433:1: ruleNewSite returns [EObject current=null] : (otherlv_0= '#newsite' ( (lv_value_1_0= RULE_INT ) ) (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )* ( (lv_mods_3_0= ruleSiteMods ) )* otherlv_4= '#end' ) ;
    public final EObject ruleNewSite() throws RecognitionException {
        EObject current = null;

        Token otherlv_0=null;
        Token lv_value_1_0=null;
        Token this_FREE_FORM_COMMENT_2=null;
        Token otherlv_4=null;
        EObject lv_mods_3_0 = null;


         enterRule(); 
            
        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8436:28: ( (otherlv_0= '#newsite' ( (lv_value_1_0= RULE_INT ) ) (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )* ( (lv_mods_3_0= ruleSiteMods ) )* otherlv_4= '#end' ) )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8437:1: (otherlv_0= '#newsite' ( (lv_value_1_0= RULE_INT ) ) (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )* ( (lv_mods_3_0= ruleSiteMods ) )* otherlv_4= '#end' )
            {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8437:1: (otherlv_0= '#newsite' ( (lv_value_1_0= RULE_INT ) ) (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )* ( (lv_mods_3_0= ruleSiteMods ) )* otherlv_4= '#end' )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8437:3: otherlv_0= '#newsite' ( (lv_value_1_0= RULE_INT ) ) (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )* ( (lv_mods_3_0= ruleSiteMods ) )* otherlv_4= '#end'
            {
            otherlv_0=(Token)match(input,279,FOLLOW_279_in_ruleNewSite20472); 

                	newLeafNode(otherlv_0, grammarAccess.getNewSiteAccess().getNewsiteKeyword_0());
                
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8441:1: ( (lv_value_1_0= RULE_INT ) )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8442:1: (lv_value_1_0= RULE_INT )
            {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8442:1: (lv_value_1_0= RULE_INT )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8443:3: lv_value_1_0= RULE_INT
            {
            lv_value_1_0=(Token)match(input,RULE_INT,FOLLOW_RULE_INT_in_ruleNewSite20489); 

            			newLeafNode(lv_value_1_0, grammarAccess.getNewSiteAccess().getValueINTTerminalRuleCall_1_0()); 
            		

            	        if (current==null) {
            	            current = createModelElement(grammarAccess.getNewSiteRule());
            	        }
                   		setWithLastConsumed(
                   			current, 
                   			"value",
                    		lv_value_1_0, 
                    		"INT");
            	    

            }


            }

            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8459:2: (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )*
            loop98:
            do {
                int alt98=2;
                int LA98_0 = input.LA(1);

                if ( (LA98_0==RULE_FREE_FORM_COMMENT) ) {
                    alt98=1;
                }


                switch (alt98) {
            	case 1 :
            	    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8459:3: this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT
            	    {
            	    this_FREE_FORM_COMMENT_2=(Token)match(input,RULE_FREE_FORM_COMMENT,FOLLOW_RULE_FREE_FORM_COMMENT_in_ruleNewSite20506); 
            	     
            	        newLeafNode(this_FREE_FORM_COMMENT_2, grammarAccess.getNewSiteAccess().getFREE_FORM_COMMENTTerminalRuleCall_2()); 
            	        

            	    }
            	    break;

            	default :
            	    break loop98;
                }
            } while (true);

            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8463:3: ( (lv_mods_3_0= ruleSiteMods ) )*
            loop99:
            do {
                int alt99=2;
                int LA99_0 = input.LA(1);

                if ( (LA99_0==36||LA99_0==167||LA99_0==200||LA99_0==207||LA99_0==265||(LA99_0>=280 && LA99_0<=303)) ) {
                    alt99=1;
                }


                switch (alt99) {
            	case 1 :
            	    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8464:1: (lv_mods_3_0= ruleSiteMods )
            	    {
            	    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8464:1: (lv_mods_3_0= ruleSiteMods )
            	    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8465:3: lv_mods_3_0= ruleSiteMods
            	    {
            	     
            	    	        newCompositeNode(grammarAccess.getNewSiteAccess().getModsSiteModsParserRuleCall_3_0()); 
            	    	    
            	    pushFollow(FOLLOW_ruleSiteMods_in_ruleNewSite20528);
            	    lv_mods_3_0=ruleSiteMods();

            	    state._fsp--;


            	    	        if (current==null) {
            	    	            current = createModelElementForParent(grammarAccess.getNewSiteRule());
            	    	        }
            	           		add(
            	           			current, 
            	           			"mods",
            	            		lv_mods_3_0, 
            	            		"SiteMods");
            	    	        afterParserOrEnumRuleCall();
            	    	    

            	    }


            	    }
            	    break;

            	default :
            	    break loop99;
                }
            } while (true);

            otherlv_4=(Token)match(input,15,FOLLOW_15_in_ruleNewSite20541); 

                	newLeafNode(otherlv_4, grammarAccess.getNewSiteAccess().getEndKeyword_4());
                

            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleNewSite"


    // $ANTLR start "entryRuleSiteMods"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8493:1: entryRuleSiteMods returns [EObject current=null] : iv_ruleSiteMods= ruleSiteMods EOF ;
    public final EObject entryRuleSiteMods() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleSiteMods = null;


        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8494:2: (iv_ruleSiteMods= ruleSiteMods EOF )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8495:2: iv_ruleSiteMods= ruleSiteMods EOF
            {
             newCompositeNode(grammarAccess.getSiteModsRule()); 
            pushFollow(FOLLOW_ruleSiteMods_in_entryRuleSiteMods20577);
            iv_ruleSiteMods=ruleSiteMods();

            state._fsp--;

             current =iv_ruleSiteMods; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleSiteMods20587); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleSiteMods"


    // $ANTLR start "ruleSiteMods"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8502:1: ruleSiteMods returns [EObject current=null] : (this_SitePattern1_0= ruleSitePattern1 | this_SitePattern2_1= ruleSitePattern2 | this_SitePattern3_2= ruleSitePattern3 | this_SitePattern4_3= ruleSitePattern4 ) ;
    public final EObject ruleSiteMods() throws RecognitionException {
        EObject current = null;

        EObject this_SitePattern1_0 = null;

        EObject this_SitePattern2_1 = null;

        EObject this_SitePattern3_2 = null;

        EObject this_SitePattern4_3 = null;


         enterRule(); 
            
        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8505:28: ( (this_SitePattern1_0= ruleSitePattern1 | this_SitePattern2_1= ruleSitePattern2 | this_SitePattern3_2= ruleSitePattern3 | this_SitePattern4_3= ruleSitePattern4 ) )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8506:1: (this_SitePattern1_0= ruleSitePattern1 | this_SitePattern2_1= ruleSitePattern2 | this_SitePattern3_2= ruleSitePattern3 | this_SitePattern4_3= ruleSitePattern4 )
            {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8506:1: (this_SitePattern1_0= ruleSitePattern1 | this_SitePattern2_1= ruleSitePattern2 | this_SitePattern3_2= ruleSitePattern3 | this_SitePattern4_3= ruleSitePattern4 )
            int alt100=4;
            switch ( input.LA(1) ) {
            case 36:
                {
                alt100=1;
                }
                break;
            case 200:
            case 207:
            case 265:
            case 280:
            case 281:
            case 282:
            case 283:
            case 284:
            case 285:
            case 286:
            case 287:
            case 288:
            case 289:
            case 290:
            case 291:
            case 292:
            case 293:
            case 294:
            case 295:
            case 296:
            case 297:
            case 298:
            case 299:
            case 300:
            case 301:
                {
                alt100=2;
                }
                break;
            case 302:
                {
                alt100=3;
                }
                break;
            case 167:
            case 303:
                {
                alt100=4;
                }
                break;
            default:
                NoViableAltException nvae =
                    new NoViableAltException("", 100, 0, input);

                throw nvae;
            }

            switch (alt100) {
                case 1 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8507:5: this_SitePattern1_0= ruleSitePattern1
                    {
                     
                            newCompositeNode(grammarAccess.getSiteModsAccess().getSitePattern1ParserRuleCall_0()); 
                        
                    pushFollow(FOLLOW_ruleSitePattern1_in_ruleSiteMods20634);
                    this_SitePattern1_0=ruleSitePattern1();

                    state._fsp--;

                     
                            current = this_SitePattern1_0; 
                            afterParserOrEnumRuleCall();
                        

                    }
                    break;
                case 2 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8517:5: this_SitePattern2_1= ruleSitePattern2
                    {
                     
                            newCompositeNode(grammarAccess.getSiteModsAccess().getSitePattern2ParserRuleCall_1()); 
                        
                    pushFollow(FOLLOW_ruleSitePattern2_in_ruleSiteMods20661);
                    this_SitePattern2_1=ruleSitePattern2();

                    state._fsp--;

                     
                            current = this_SitePattern2_1; 
                            afterParserOrEnumRuleCall();
                        

                    }
                    break;
                case 3 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8527:5: this_SitePattern3_2= ruleSitePattern3
                    {
                     
                            newCompositeNode(grammarAccess.getSiteModsAccess().getSitePattern3ParserRuleCall_2()); 
                        
                    pushFollow(FOLLOW_ruleSitePattern3_in_ruleSiteMods20688);
                    this_SitePattern3_2=ruleSitePattern3();

                    state._fsp--;

                     
                            current = this_SitePattern3_2; 
                            afterParserOrEnumRuleCall();
                        

                    }
                    break;
                case 4 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8537:5: this_SitePattern4_3= ruleSitePattern4
                    {
                     
                            newCompositeNode(grammarAccess.getSiteModsAccess().getSitePattern4ParserRuleCall_3()); 
                        
                    pushFollow(FOLLOW_ruleSitePattern4_in_ruleSiteMods20715);
                    this_SitePattern4_3=ruleSitePattern4();

                    state._fsp--;

                     
                            current = this_SitePattern4_3; 
                            afterParserOrEnumRuleCall();
                        

                    }
                    break;

            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleSiteMods"


    // $ANTLR start "entryRuleSitePattern1"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8553:1: entryRuleSitePattern1 returns [EObject current=null] : iv_ruleSitePattern1= ruleSitePattern1 EOF ;
    public final EObject entryRuleSitePattern1() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleSitePattern1 = null;


        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8554:2: (iv_ruleSitePattern1= ruleSitePattern1 EOF )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8555:2: iv_ruleSitePattern1= ruleSitePattern1 EOF
            {
             newCompositeNode(grammarAccess.getSitePattern1Rule()); 
            pushFollow(FOLLOW_ruleSitePattern1_in_entryRuleSitePattern120750);
            iv_ruleSitePattern1=ruleSitePattern1();

            state._fsp--;

             current =iv_ruleSitePattern1; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleSitePattern120760); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleSitePattern1"


    // $ANTLR start "ruleSitePattern1"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8562:1: ruleSitePattern1 returns [EObject current=null] : (this_SiteInst1_0= ruleSiteInst1 ( (lv_value_1_0= RULE_STRING ) ) (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )* ) ;
    public final EObject ruleSitePattern1() throws RecognitionException {
        EObject current = null;

        Token lv_value_1_0=null;
        Token this_FREE_FORM_COMMENT_2=null;
        EObject this_SiteInst1_0 = null;


         enterRule(); 
            
        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8565:28: ( (this_SiteInst1_0= ruleSiteInst1 ( (lv_value_1_0= RULE_STRING ) ) (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )* ) )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8566:1: (this_SiteInst1_0= ruleSiteInst1 ( (lv_value_1_0= RULE_STRING ) ) (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )* )
            {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8566:1: (this_SiteInst1_0= ruleSiteInst1 ( (lv_value_1_0= RULE_STRING ) ) (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )* )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8567:5: this_SiteInst1_0= ruleSiteInst1 ( (lv_value_1_0= RULE_STRING ) ) (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )*
            {
             
                    newCompositeNode(grammarAccess.getSitePattern1Access().getSiteInst1ParserRuleCall_0()); 
                
            pushFollow(FOLLOW_ruleSiteInst1_in_ruleSitePattern120807);
            this_SiteInst1_0=ruleSiteInst1();

            state._fsp--;

             
                    current = this_SiteInst1_0; 
                    afterParserOrEnumRuleCall();
                
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8575:1: ( (lv_value_1_0= RULE_STRING ) )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8576:1: (lv_value_1_0= RULE_STRING )
            {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8576:1: (lv_value_1_0= RULE_STRING )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8577:3: lv_value_1_0= RULE_STRING
            {
            lv_value_1_0=(Token)match(input,RULE_STRING,FOLLOW_RULE_STRING_in_ruleSitePattern120823); 

            			newLeafNode(lv_value_1_0, grammarAccess.getSitePattern1Access().getValueSTRINGTerminalRuleCall_1_0()); 
            		

            	        if (current==null) {
            	            current = createModelElement(grammarAccess.getSitePattern1Rule());
            	        }
                   		setWithLastConsumed(
                   			current, 
                   			"value",
                    		lv_value_1_0, 
                    		"STRING");
            	    

            }


            }

            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8593:2: (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )*
            loop101:
            do {
                int alt101=2;
                int LA101_0 = input.LA(1);

                if ( (LA101_0==RULE_FREE_FORM_COMMENT) ) {
                    alt101=1;
                }


                switch (alt101) {
            	case 1 :
            	    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8593:3: this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT
            	    {
            	    this_FREE_FORM_COMMENT_2=(Token)match(input,RULE_FREE_FORM_COMMENT,FOLLOW_RULE_FREE_FORM_COMMENT_in_ruleSitePattern120840); 
            	     
            	        newLeafNode(this_FREE_FORM_COMMENT_2, grammarAccess.getSitePattern1Access().getFREE_FORM_COMMENTTerminalRuleCall_2()); 
            	        

            	    }
            	    break;

            	default :
            	    break loop101;
                }
            } while (true);


            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleSitePattern1"


    // $ANTLR start "entryRuleSitePattern2"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8605:1: entryRuleSitePattern2 returns [EObject current=null] : iv_ruleSitePattern2= ruleSitePattern2 EOF ;
    public final EObject entryRuleSitePattern2() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleSitePattern2 = null;


        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8606:2: (iv_ruleSitePattern2= ruleSitePattern2 EOF )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8607:2: iv_ruleSitePattern2= ruleSitePattern2 EOF
            {
             newCompositeNode(grammarAccess.getSitePattern2Rule()); 
            pushFollow(FOLLOW_ruleSitePattern2_in_entryRuleSitePattern220877);
            iv_ruleSitePattern2=ruleSitePattern2();

            state._fsp--;

             current =iv_ruleSitePattern2; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleSitePattern220887); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleSitePattern2"


    // $ANTLR start "ruleSitePattern2"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8614:1: ruleSitePattern2 returns [EObject current=null] : (this_SiteInst2_0= ruleSiteInst2 ( (lv_value_1_0= RULE_INT ) ) (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )* ) ;
    public final EObject ruleSitePattern2() throws RecognitionException {
        EObject current = null;

        Token lv_value_1_0=null;
        Token this_FREE_FORM_COMMENT_2=null;
        EObject this_SiteInst2_0 = null;


         enterRule(); 
            
        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8617:28: ( (this_SiteInst2_0= ruleSiteInst2 ( (lv_value_1_0= RULE_INT ) ) (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )* ) )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8618:1: (this_SiteInst2_0= ruleSiteInst2 ( (lv_value_1_0= RULE_INT ) ) (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )* )
            {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8618:1: (this_SiteInst2_0= ruleSiteInst2 ( (lv_value_1_0= RULE_INT ) ) (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )* )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8619:5: this_SiteInst2_0= ruleSiteInst2 ( (lv_value_1_0= RULE_INT ) ) (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )*
            {
             
                    newCompositeNode(grammarAccess.getSitePattern2Access().getSiteInst2ParserRuleCall_0()); 
                
            pushFollow(FOLLOW_ruleSiteInst2_in_ruleSitePattern220934);
            this_SiteInst2_0=ruleSiteInst2();

            state._fsp--;

             
                    current = this_SiteInst2_0; 
                    afterParserOrEnumRuleCall();
                
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8627:1: ( (lv_value_1_0= RULE_INT ) )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8628:1: (lv_value_1_0= RULE_INT )
            {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8628:1: (lv_value_1_0= RULE_INT )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8629:3: lv_value_1_0= RULE_INT
            {
            lv_value_1_0=(Token)match(input,RULE_INT,FOLLOW_RULE_INT_in_ruleSitePattern220950); 

            			newLeafNode(lv_value_1_0, grammarAccess.getSitePattern2Access().getValueINTTerminalRuleCall_1_0()); 
            		

            	        if (current==null) {
            	            current = createModelElement(grammarAccess.getSitePattern2Rule());
            	        }
                   		setWithLastConsumed(
                   			current, 
                   			"value",
                    		lv_value_1_0, 
                    		"INT");
            	    

            }


            }

            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8645:2: (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )*
            loop102:
            do {
                int alt102=2;
                int LA102_0 = input.LA(1);

                if ( (LA102_0==RULE_FREE_FORM_COMMENT) ) {
                    alt102=1;
                }


                switch (alt102) {
            	case 1 :
            	    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8645:3: this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT
            	    {
            	    this_FREE_FORM_COMMENT_2=(Token)match(input,RULE_FREE_FORM_COMMENT,FOLLOW_RULE_FREE_FORM_COMMENT_in_ruleSitePattern220967); 
            	     
            	        newLeafNode(this_FREE_FORM_COMMENT_2, grammarAccess.getSitePattern2Access().getFREE_FORM_COMMENTTerminalRuleCall_2()); 
            	        

            	    }
            	    break;

            	default :
            	    break loop102;
                }
            } while (true);


            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleSitePattern2"


    // $ANTLR start "entryRuleSitePattern3"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8657:1: entryRuleSitePattern3 returns [EObject current=null] : iv_ruleSitePattern3= ruleSitePattern3 EOF ;
    public final EObject entryRuleSitePattern3() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleSitePattern3 = null;


        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8658:2: (iv_ruleSitePattern3= ruleSitePattern3 EOF )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8659:2: iv_ruleSitePattern3= ruleSitePattern3 EOF
            {
             newCompositeNode(grammarAccess.getSitePattern3Rule()); 
            pushFollow(FOLLOW_ruleSitePattern3_in_entryRuleSitePattern321004);
            iv_ruleSitePattern3=ruleSitePattern3();

            state._fsp--;

             current =iv_ruleSitePattern3; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleSitePattern321014); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleSitePattern3"


    // $ANTLR start "ruleSitePattern3"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8666:1: ruleSitePattern3 returns [EObject current=null] : (this_SiteInst3_0= ruleSiteInst3 ( (lv_value1_1_0= RULE_INT ) ) ( (lv_value2_2_0= RULE_INT ) ) (this_FREE_FORM_COMMENT_3= RULE_FREE_FORM_COMMENT )* ) ;
    public final EObject ruleSitePattern3() throws RecognitionException {
        EObject current = null;

        Token lv_value1_1_0=null;
        Token lv_value2_2_0=null;
        Token this_FREE_FORM_COMMENT_3=null;
        EObject this_SiteInst3_0 = null;


         enterRule(); 
            
        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8669:28: ( (this_SiteInst3_0= ruleSiteInst3 ( (lv_value1_1_0= RULE_INT ) ) ( (lv_value2_2_0= RULE_INT ) ) (this_FREE_FORM_COMMENT_3= RULE_FREE_FORM_COMMENT )* ) )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8670:1: (this_SiteInst3_0= ruleSiteInst3 ( (lv_value1_1_0= RULE_INT ) ) ( (lv_value2_2_0= RULE_INT ) ) (this_FREE_FORM_COMMENT_3= RULE_FREE_FORM_COMMENT )* )
            {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8670:1: (this_SiteInst3_0= ruleSiteInst3 ( (lv_value1_1_0= RULE_INT ) ) ( (lv_value2_2_0= RULE_INT ) ) (this_FREE_FORM_COMMENT_3= RULE_FREE_FORM_COMMENT )* )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8671:5: this_SiteInst3_0= ruleSiteInst3 ( (lv_value1_1_0= RULE_INT ) ) ( (lv_value2_2_0= RULE_INT ) ) (this_FREE_FORM_COMMENT_3= RULE_FREE_FORM_COMMENT )*
            {
             
                    newCompositeNode(grammarAccess.getSitePattern3Access().getSiteInst3ParserRuleCall_0()); 
                
            pushFollow(FOLLOW_ruleSiteInst3_in_ruleSitePattern321061);
            this_SiteInst3_0=ruleSiteInst3();

            state._fsp--;

             
                    current = this_SiteInst3_0; 
                    afterParserOrEnumRuleCall();
                
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8679:1: ( (lv_value1_1_0= RULE_INT ) )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8680:1: (lv_value1_1_0= RULE_INT )
            {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8680:1: (lv_value1_1_0= RULE_INT )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8681:3: lv_value1_1_0= RULE_INT
            {
            lv_value1_1_0=(Token)match(input,RULE_INT,FOLLOW_RULE_INT_in_ruleSitePattern321077); 

            			newLeafNode(lv_value1_1_0, grammarAccess.getSitePattern3Access().getValue1INTTerminalRuleCall_1_0()); 
            		

            	        if (current==null) {
            	            current = createModelElement(grammarAccess.getSitePattern3Rule());
            	        }
                   		setWithLastConsumed(
                   			current, 
                   			"value1",
                    		lv_value1_1_0, 
                    		"INT");
            	    

            }


            }

            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8697:2: ( (lv_value2_2_0= RULE_INT ) )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8698:1: (lv_value2_2_0= RULE_INT )
            {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8698:1: (lv_value2_2_0= RULE_INT )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8699:3: lv_value2_2_0= RULE_INT
            {
            lv_value2_2_0=(Token)match(input,RULE_INT,FOLLOW_RULE_INT_in_ruleSitePattern321099); 

            			newLeafNode(lv_value2_2_0, grammarAccess.getSitePattern3Access().getValue2INTTerminalRuleCall_2_0()); 
            		

            	        if (current==null) {
            	            current = createModelElement(grammarAccess.getSitePattern3Rule());
            	        }
                   		setWithLastConsumed(
                   			current, 
                   			"value2",
                    		lv_value2_2_0, 
                    		"INT");
            	    

            }


            }

            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8715:2: (this_FREE_FORM_COMMENT_3= RULE_FREE_FORM_COMMENT )*
            loop103:
            do {
                int alt103=2;
                int LA103_0 = input.LA(1);

                if ( (LA103_0==RULE_FREE_FORM_COMMENT) ) {
                    alt103=1;
                }


                switch (alt103) {
            	case 1 :
            	    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8715:3: this_FREE_FORM_COMMENT_3= RULE_FREE_FORM_COMMENT
            	    {
            	    this_FREE_FORM_COMMENT_3=(Token)match(input,RULE_FREE_FORM_COMMENT,FOLLOW_RULE_FREE_FORM_COMMENT_in_ruleSitePattern321116); 
            	     
            	        newLeafNode(this_FREE_FORM_COMMENT_3, grammarAccess.getSitePattern3Access().getFREE_FORM_COMMENTTerminalRuleCall_3()); 
            	        

            	    }
            	    break;

            	default :
            	    break loop103;
                }
            } while (true);


            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleSitePattern3"


    // $ANTLR start "entryRuleSitePattern4"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8727:1: entryRuleSitePattern4 returns [EObject current=null] : iv_ruleSitePattern4= ruleSitePattern4 EOF ;
    public final EObject entryRuleSitePattern4() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleSitePattern4 = null;


        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8728:2: (iv_ruleSitePattern4= ruleSitePattern4 EOF )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8729:2: iv_ruleSitePattern4= ruleSitePattern4 EOF
            {
             newCompositeNode(grammarAccess.getSitePattern4Rule()); 
            pushFollow(FOLLOW_ruleSitePattern4_in_entryRuleSitePattern421153);
            iv_ruleSitePattern4=ruleSitePattern4();

            state._fsp--;

             current =iv_ruleSitePattern4; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleSitePattern421163); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleSitePattern4"


    // $ANTLR start "ruleSitePattern4"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8736:1: ruleSitePattern4 returns [EObject current=null] : (this_SiteInst4_0= ruleSiteInst4 (this_FREE_FORM_COMMENT_1= RULE_FREE_FORM_COMMENT )* ) ;
    public final EObject ruleSitePattern4() throws RecognitionException {
        EObject current = null;

        Token this_FREE_FORM_COMMENT_1=null;
        EObject this_SiteInst4_0 = null;


         enterRule(); 
            
        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8739:28: ( (this_SiteInst4_0= ruleSiteInst4 (this_FREE_FORM_COMMENT_1= RULE_FREE_FORM_COMMENT )* ) )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8740:1: (this_SiteInst4_0= ruleSiteInst4 (this_FREE_FORM_COMMENT_1= RULE_FREE_FORM_COMMENT )* )
            {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8740:1: (this_SiteInst4_0= ruleSiteInst4 (this_FREE_FORM_COMMENT_1= RULE_FREE_FORM_COMMENT )* )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8741:5: this_SiteInst4_0= ruleSiteInst4 (this_FREE_FORM_COMMENT_1= RULE_FREE_FORM_COMMENT )*
            {
             
                    newCompositeNode(grammarAccess.getSitePattern4Access().getSiteInst4ParserRuleCall_0()); 
                
            pushFollow(FOLLOW_ruleSiteInst4_in_ruleSitePattern421210);
            this_SiteInst4_0=ruleSiteInst4();

            state._fsp--;

             
                    current = this_SiteInst4_0; 
                    afterParserOrEnumRuleCall();
                
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8749:1: (this_FREE_FORM_COMMENT_1= RULE_FREE_FORM_COMMENT )*
            loop104:
            do {
                int alt104=2;
                int LA104_0 = input.LA(1);

                if ( (LA104_0==RULE_FREE_FORM_COMMENT) ) {
                    alt104=1;
                }


                switch (alt104) {
            	case 1 :
            	    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8749:2: this_FREE_FORM_COMMENT_1= RULE_FREE_FORM_COMMENT
            	    {
            	    this_FREE_FORM_COMMENT_1=(Token)match(input,RULE_FREE_FORM_COMMENT,FOLLOW_RULE_FREE_FORM_COMMENT_in_ruleSitePattern421221); 
            	     
            	        newLeafNode(this_FREE_FORM_COMMENT_1, grammarAccess.getSitePattern4Access().getFREE_FORM_COMMENTTerminalRuleCall_1()); 
            	        

            	    }
            	    break;

            	default :
            	    break loop104;
                }
            } while (true);


            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleSitePattern4"


    // $ANTLR start "entryRuleSiteInst1"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8761:1: entryRuleSiteInst1 returns [EObject current=null] : iv_ruleSiteInst1= ruleSiteInst1 EOF ;
    public final EObject entryRuleSiteInst1() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleSiteInst1 = null;


        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8762:2: (iv_ruleSiteInst1= ruleSiteInst1 EOF )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8763:2: iv_ruleSiteInst1= ruleSiteInst1 EOF
            {
             newCompositeNode(grammarAccess.getSiteInst1Rule()); 
            pushFollow(FOLLOW_ruleSiteInst1_in_entryRuleSiteInst121258);
            iv_ruleSiteInst1=ruleSiteInst1();

            state._fsp--;

             current =iv_ruleSiteInst1; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleSiteInst121268); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleSiteInst1"


    // $ANTLR start "ruleSiteInst1"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8770:1: ruleSiteInst1 returns [EObject current=null] : ( (lv_name_0_0= '#name' ) ) ;
    public final EObject ruleSiteInst1() throws RecognitionException {
        EObject current = null;

        Token lv_name_0_0=null;

         enterRule(); 
            
        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8773:28: ( ( (lv_name_0_0= '#name' ) ) )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8774:1: ( (lv_name_0_0= '#name' ) )
            {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8774:1: ( (lv_name_0_0= '#name' ) )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8775:1: (lv_name_0_0= '#name' )
            {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8775:1: (lv_name_0_0= '#name' )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8776:3: lv_name_0_0= '#name'
            {
            lv_name_0_0=(Token)match(input,36,FOLLOW_36_in_ruleSiteInst121310); 

                    newLeafNode(lv_name_0_0, grammarAccess.getSiteInst1Access().getNameNameKeyword_0());
                

            	        if (current==null) {
            	            current = createModelElement(grammarAccess.getSiteInst1Rule());
            	        }
                   		setWithLastConsumed(current, "name", true, "#name");
            	    

            }


            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleSiteInst1"


    // $ANTLR start "entryRuleSiteInst2"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8797:1: entryRuleSiteInst2 returns [EObject current=null] : iv_ruleSiteInst2= ruleSiteInst2 EOF ;
    public final EObject entryRuleSiteInst2() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleSiteInst2 = null;


        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8798:2: (iv_ruleSiteInst2= ruleSiteInst2 EOF )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8799:2: iv_ruleSiteInst2= ruleSiteInst2 EOF
            {
             newCompositeNode(grammarAccess.getSiteInst2Rule()); 
            pushFollow(FOLLOW_ruleSiteInst2_in_entryRuleSiteInst221358);
            iv_ruleSiteInst2=ruleSiteInst2();

            state._fsp--;

             current =iv_ruleSiteInst2; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleSiteInst221368); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleSiteInst2"


    // $ANTLR start "ruleSiteInst2"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8806:1: ruleSiteInst2 returns [EObject current=null] : ( ( (lv_path_0_0= '#path' ) ) | ( (lv_level_1_0= '#level' ) ) | ( (lv_rarity_2_0= '#rarity' ) ) | ( (lv_loc_3_0= '#loc' ) ) | ( (lv_homemon_4_0= '#homemon' ) ) | ( (lv_homecom_5_0= '#homecom' ) ) | ( (lv_mon_6_0= '#mon' ) ) | ( (lv_com_7_0= '#com' ) ) | ( (lv_gold_8_0= '#gold' ) ) | ( (lv_res_9_0= '#res' ) ) | ( (lv_incscale_10_0= '#incscale' ) ) | ( (lv_decscale_11_0= '#decscale' ) ) | ( (lv_heal_12_0= '#heal' ) ) | ( (lv_curse_13_0= '#curse' ) ) | ( (lv_disease_14_0= '#disease' ) ) | ( (lv_horrormark_15_0= '#horrormark' ) ) | ( (lv_holyfire_16_0= '#holyfire' ) ) | ( (lv_holypower_17_0= '#holypower' ) ) | ( (lv_conjcost_18_0= '#conjcost' ) ) | ( (lv_altcost_19_0= '#altcost' ) ) | ( (lv_evocost_20_0= '#evocost' ) ) | ( (lv_constcost_21_0= '#constcost' ) ) | ( (lv_enchcost_22_0= '#enchcost' ) ) | ( (lv_thaucost_23_0= '#thaucost' ) ) | ( (lv_bloodcost_24_0= '#bloodcost' ) ) ) ;
    public final EObject ruleSiteInst2() throws RecognitionException {
        EObject current = null;

        Token lv_path_0_0=null;
        Token lv_level_1_0=null;
        Token lv_rarity_2_0=null;
        Token lv_loc_3_0=null;
        Token lv_homemon_4_0=null;
        Token lv_homecom_5_0=null;
        Token lv_mon_6_0=null;
        Token lv_com_7_0=null;
        Token lv_gold_8_0=null;
        Token lv_res_9_0=null;
        Token lv_incscale_10_0=null;
        Token lv_decscale_11_0=null;
        Token lv_heal_12_0=null;
        Token lv_curse_13_0=null;
        Token lv_disease_14_0=null;
        Token lv_horrormark_15_0=null;
        Token lv_holyfire_16_0=null;
        Token lv_holypower_17_0=null;
        Token lv_conjcost_18_0=null;
        Token lv_altcost_19_0=null;
        Token lv_evocost_20_0=null;
        Token lv_constcost_21_0=null;
        Token lv_enchcost_22_0=null;
        Token lv_thaucost_23_0=null;
        Token lv_bloodcost_24_0=null;

         enterRule(); 
            
        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8809:28: ( ( ( (lv_path_0_0= '#path' ) ) | ( (lv_level_1_0= '#level' ) ) | ( (lv_rarity_2_0= '#rarity' ) ) | ( (lv_loc_3_0= '#loc' ) ) | ( (lv_homemon_4_0= '#homemon' ) ) | ( (lv_homecom_5_0= '#homecom' ) ) | ( (lv_mon_6_0= '#mon' ) ) | ( (lv_com_7_0= '#com' ) ) | ( (lv_gold_8_0= '#gold' ) ) | ( (lv_res_9_0= '#res' ) ) | ( (lv_incscale_10_0= '#incscale' ) ) | ( (lv_decscale_11_0= '#decscale' ) ) | ( (lv_heal_12_0= '#heal' ) ) | ( (lv_curse_13_0= '#curse' ) ) | ( (lv_disease_14_0= '#disease' ) ) | ( (lv_horrormark_15_0= '#horrormark' ) ) | ( (lv_holyfire_16_0= '#holyfire' ) ) | ( (lv_holypower_17_0= '#holypower' ) ) | ( (lv_conjcost_18_0= '#conjcost' ) ) | ( (lv_altcost_19_0= '#altcost' ) ) | ( (lv_evocost_20_0= '#evocost' ) ) | ( (lv_constcost_21_0= '#constcost' ) ) | ( (lv_enchcost_22_0= '#enchcost' ) ) | ( (lv_thaucost_23_0= '#thaucost' ) ) | ( (lv_bloodcost_24_0= '#bloodcost' ) ) ) )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8810:1: ( ( (lv_path_0_0= '#path' ) ) | ( (lv_level_1_0= '#level' ) ) | ( (lv_rarity_2_0= '#rarity' ) ) | ( (lv_loc_3_0= '#loc' ) ) | ( (lv_homemon_4_0= '#homemon' ) ) | ( (lv_homecom_5_0= '#homecom' ) ) | ( (lv_mon_6_0= '#mon' ) ) | ( (lv_com_7_0= '#com' ) ) | ( (lv_gold_8_0= '#gold' ) ) | ( (lv_res_9_0= '#res' ) ) | ( (lv_incscale_10_0= '#incscale' ) ) | ( (lv_decscale_11_0= '#decscale' ) ) | ( (lv_heal_12_0= '#heal' ) ) | ( (lv_curse_13_0= '#curse' ) ) | ( (lv_disease_14_0= '#disease' ) ) | ( (lv_horrormark_15_0= '#horrormark' ) ) | ( (lv_holyfire_16_0= '#holyfire' ) ) | ( (lv_holypower_17_0= '#holypower' ) ) | ( (lv_conjcost_18_0= '#conjcost' ) ) | ( (lv_altcost_19_0= '#altcost' ) ) | ( (lv_evocost_20_0= '#evocost' ) ) | ( (lv_constcost_21_0= '#constcost' ) ) | ( (lv_enchcost_22_0= '#enchcost' ) ) | ( (lv_thaucost_23_0= '#thaucost' ) ) | ( (lv_bloodcost_24_0= '#bloodcost' ) ) )
            {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8810:1: ( ( (lv_path_0_0= '#path' ) ) | ( (lv_level_1_0= '#level' ) ) | ( (lv_rarity_2_0= '#rarity' ) ) | ( (lv_loc_3_0= '#loc' ) ) | ( (lv_homemon_4_0= '#homemon' ) ) | ( (lv_homecom_5_0= '#homecom' ) ) | ( (lv_mon_6_0= '#mon' ) ) | ( (lv_com_7_0= '#com' ) ) | ( (lv_gold_8_0= '#gold' ) ) | ( (lv_res_9_0= '#res' ) ) | ( (lv_incscale_10_0= '#incscale' ) ) | ( (lv_decscale_11_0= '#decscale' ) ) | ( (lv_heal_12_0= '#heal' ) ) | ( (lv_curse_13_0= '#curse' ) ) | ( (lv_disease_14_0= '#disease' ) ) | ( (lv_horrormark_15_0= '#horrormark' ) ) | ( (lv_holyfire_16_0= '#holyfire' ) ) | ( (lv_holypower_17_0= '#holypower' ) ) | ( (lv_conjcost_18_0= '#conjcost' ) ) | ( (lv_altcost_19_0= '#altcost' ) ) | ( (lv_evocost_20_0= '#evocost' ) ) | ( (lv_constcost_21_0= '#constcost' ) ) | ( (lv_enchcost_22_0= '#enchcost' ) ) | ( (lv_thaucost_23_0= '#thaucost' ) ) | ( (lv_bloodcost_24_0= '#bloodcost' ) ) )
            int alt105=25;
            switch ( input.LA(1) ) {
            case 265:
                {
                alt105=1;
                }
                break;
            case 280:
                {
                alt105=2;
                }
                break;
            case 281:
                {
                alt105=3;
                }
                break;
            case 282:
                {
                alt105=4;
                }
                break;
            case 283:
                {
                alt105=5;
                }
                break;
            case 284:
                {
                alt105=6;
                }
                break;
            case 285:
                {
                alt105=7;
                }
                break;
            case 286:
                {
                alt105=8;
                }
                break;
            case 287:
                {
                alt105=9;
                }
                break;
            case 288:
                {
                alt105=10;
                }
                break;
            case 289:
                {
                alt105=11;
                }
                break;
            case 290:
                {
                alt105=12;
                }
                break;
            case 200:
                {
                alt105=13;
                }
                break;
            case 291:
                {
                alt105=14;
                }
                break;
            case 292:
                {
                alt105=15;
                }
                break;
            case 207:
                {
                alt105=16;
                }
                break;
            case 293:
                {
                alt105=17;
                }
                break;
            case 294:
                {
                alt105=18;
                }
                break;
            case 295:
                {
                alt105=19;
                }
                break;
            case 296:
                {
                alt105=20;
                }
                break;
            case 297:
                {
                alt105=21;
                }
                break;
            case 298:
                {
                alt105=22;
                }
                break;
            case 299:
                {
                alt105=23;
                }
                break;
            case 300:
                {
                alt105=24;
                }
                break;
            case 301:
                {
                alt105=25;
                }
                break;
            default:
                NoViableAltException nvae =
                    new NoViableAltException("", 105, 0, input);

                throw nvae;
            }

            switch (alt105) {
                case 1 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8810:2: ( (lv_path_0_0= '#path' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8810:2: ( (lv_path_0_0= '#path' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8811:1: (lv_path_0_0= '#path' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8811:1: (lv_path_0_0= '#path' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8812:3: lv_path_0_0= '#path'
                    {
                    lv_path_0_0=(Token)match(input,265,FOLLOW_265_in_ruleSiteInst221411); 

                            newLeafNode(lv_path_0_0, grammarAccess.getSiteInst2Access().getPathPathKeyword_0_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getSiteInst2Rule());
                    	        }
                           		setWithLastConsumed(current, "path", true, "#path");
                    	    

                    }


                    }


                    }
                    break;
                case 2 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8826:6: ( (lv_level_1_0= '#level' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8826:6: ( (lv_level_1_0= '#level' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8827:1: (lv_level_1_0= '#level' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8827:1: (lv_level_1_0= '#level' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8828:3: lv_level_1_0= '#level'
                    {
                    lv_level_1_0=(Token)match(input,280,FOLLOW_280_in_ruleSiteInst221448); 

                            newLeafNode(lv_level_1_0, grammarAccess.getSiteInst2Access().getLevelLevelKeyword_1_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getSiteInst2Rule());
                    	        }
                           		setWithLastConsumed(current, "level", true, "#level");
                    	    

                    }


                    }


                    }
                    break;
                case 3 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8842:6: ( (lv_rarity_2_0= '#rarity' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8842:6: ( (lv_rarity_2_0= '#rarity' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8843:1: (lv_rarity_2_0= '#rarity' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8843:1: (lv_rarity_2_0= '#rarity' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8844:3: lv_rarity_2_0= '#rarity'
                    {
                    lv_rarity_2_0=(Token)match(input,281,FOLLOW_281_in_ruleSiteInst221485); 

                            newLeafNode(lv_rarity_2_0, grammarAccess.getSiteInst2Access().getRarityRarityKeyword_2_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getSiteInst2Rule());
                    	        }
                           		setWithLastConsumed(current, "rarity", true, "#rarity");
                    	    

                    }


                    }


                    }
                    break;
                case 4 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8858:6: ( (lv_loc_3_0= '#loc' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8858:6: ( (lv_loc_3_0= '#loc' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8859:1: (lv_loc_3_0= '#loc' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8859:1: (lv_loc_3_0= '#loc' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8860:3: lv_loc_3_0= '#loc'
                    {
                    lv_loc_3_0=(Token)match(input,282,FOLLOW_282_in_ruleSiteInst221522); 

                            newLeafNode(lv_loc_3_0, grammarAccess.getSiteInst2Access().getLocLocKeyword_3_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getSiteInst2Rule());
                    	        }
                           		setWithLastConsumed(current, "loc", true, "#loc");
                    	    

                    }


                    }


                    }
                    break;
                case 5 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8874:6: ( (lv_homemon_4_0= '#homemon' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8874:6: ( (lv_homemon_4_0= '#homemon' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8875:1: (lv_homemon_4_0= '#homemon' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8875:1: (lv_homemon_4_0= '#homemon' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8876:3: lv_homemon_4_0= '#homemon'
                    {
                    lv_homemon_4_0=(Token)match(input,283,FOLLOW_283_in_ruleSiteInst221559); 

                            newLeafNode(lv_homemon_4_0, grammarAccess.getSiteInst2Access().getHomemonHomemonKeyword_4_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getSiteInst2Rule());
                    	        }
                           		setWithLastConsumed(current, "homemon", true, "#homemon");
                    	    

                    }


                    }


                    }
                    break;
                case 6 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8890:6: ( (lv_homecom_5_0= '#homecom' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8890:6: ( (lv_homecom_5_0= '#homecom' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8891:1: (lv_homecom_5_0= '#homecom' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8891:1: (lv_homecom_5_0= '#homecom' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8892:3: lv_homecom_5_0= '#homecom'
                    {
                    lv_homecom_5_0=(Token)match(input,284,FOLLOW_284_in_ruleSiteInst221596); 

                            newLeafNode(lv_homecom_5_0, grammarAccess.getSiteInst2Access().getHomecomHomecomKeyword_5_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getSiteInst2Rule());
                    	        }
                           		setWithLastConsumed(current, "homecom", true, "#homecom");
                    	    

                    }


                    }


                    }
                    break;
                case 7 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8906:6: ( (lv_mon_6_0= '#mon' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8906:6: ( (lv_mon_6_0= '#mon' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8907:1: (lv_mon_6_0= '#mon' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8907:1: (lv_mon_6_0= '#mon' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8908:3: lv_mon_6_0= '#mon'
                    {
                    lv_mon_6_0=(Token)match(input,285,FOLLOW_285_in_ruleSiteInst221633); 

                            newLeafNode(lv_mon_6_0, grammarAccess.getSiteInst2Access().getMonMonKeyword_6_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getSiteInst2Rule());
                    	        }
                           		setWithLastConsumed(current, "mon", true, "#mon");
                    	    

                    }


                    }


                    }
                    break;
                case 8 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8922:6: ( (lv_com_7_0= '#com' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8922:6: ( (lv_com_7_0= '#com' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8923:1: (lv_com_7_0= '#com' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8923:1: (lv_com_7_0= '#com' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8924:3: lv_com_7_0= '#com'
                    {
                    lv_com_7_0=(Token)match(input,286,FOLLOW_286_in_ruleSiteInst221670); 

                            newLeafNode(lv_com_7_0, grammarAccess.getSiteInst2Access().getComComKeyword_7_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getSiteInst2Rule());
                    	        }
                           		setWithLastConsumed(current, "com", true, "#com");
                    	    

                    }


                    }


                    }
                    break;
                case 9 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8938:6: ( (lv_gold_8_0= '#gold' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8938:6: ( (lv_gold_8_0= '#gold' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8939:1: (lv_gold_8_0= '#gold' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8939:1: (lv_gold_8_0= '#gold' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8940:3: lv_gold_8_0= '#gold'
                    {
                    lv_gold_8_0=(Token)match(input,287,FOLLOW_287_in_ruleSiteInst221707); 

                            newLeafNode(lv_gold_8_0, grammarAccess.getSiteInst2Access().getGoldGoldKeyword_8_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getSiteInst2Rule());
                    	        }
                           		setWithLastConsumed(current, "gold", true, "#gold");
                    	    

                    }


                    }


                    }
                    break;
                case 10 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8954:6: ( (lv_res_9_0= '#res' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8954:6: ( (lv_res_9_0= '#res' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8955:1: (lv_res_9_0= '#res' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8955:1: (lv_res_9_0= '#res' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8956:3: lv_res_9_0= '#res'
                    {
                    lv_res_9_0=(Token)match(input,288,FOLLOW_288_in_ruleSiteInst221744); 

                            newLeafNode(lv_res_9_0, grammarAccess.getSiteInst2Access().getResResKeyword_9_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getSiteInst2Rule());
                    	        }
                           		setWithLastConsumed(current, "res", true, "#res");
                    	    

                    }


                    }


                    }
                    break;
                case 11 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8970:6: ( (lv_incscale_10_0= '#incscale' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8970:6: ( (lv_incscale_10_0= '#incscale' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8971:1: (lv_incscale_10_0= '#incscale' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8971:1: (lv_incscale_10_0= '#incscale' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8972:3: lv_incscale_10_0= '#incscale'
                    {
                    lv_incscale_10_0=(Token)match(input,289,FOLLOW_289_in_ruleSiteInst221781); 

                            newLeafNode(lv_incscale_10_0, grammarAccess.getSiteInst2Access().getIncscaleIncscaleKeyword_10_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getSiteInst2Rule());
                    	        }
                           		setWithLastConsumed(current, "incscale", true, "#incscale");
                    	    

                    }


                    }


                    }
                    break;
                case 12 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8986:6: ( (lv_decscale_11_0= '#decscale' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8986:6: ( (lv_decscale_11_0= '#decscale' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8987:1: (lv_decscale_11_0= '#decscale' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8987:1: (lv_decscale_11_0= '#decscale' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:8988:3: lv_decscale_11_0= '#decscale'
                    {
                    lv_decscale_11_0=(Token)match(input,290,FOLLOW_290_in_ruleSiteInst221818); 

                            newLeafNode(lv_decscale_11_0, grammarAccess.getSiteInst2Access().getDecscaleDecscaleKeyword_11_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getSiteInst2Rule());
                    	        }
                           		setWithLastConsumed(current, "decscale", true, "#decscale");
                    	    

                    }


                    }


                    }
                    break;
                case 13 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9002:6: ( (lv_heal_12_0= '#heal' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9002:6: ( (lv_heal_12_0= '#heal' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9003:1: (lv_heal_12_0= '#heal' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9003:1: (lv_heal_12_0= '#heal' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9004:3: lv_heal_12_0= '#heal'
                    {
                    lv_heal_12_0=(Token)match(input,200,FOLLOW_200_in_ruleSiteInst221855); 

                            newLeafNode(lv_heal_12_0, grammarAccess.getSiteInst2Access().getHealHealKeyword_12_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getSiteInst2Rule());
                    	        }
                           		setWithLastConsumed(current, "heal", true, "#heal");
                    	    

                    }


                    }


                    }
                    break;
                case 14 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9018:6: ( (lv_curse_13_0= '#curse' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9018:6: ( (lv_curse_13_0= '#curse' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9019:1: (lv_curse_13_0= '#curse' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9019:1: (lv_curse_13_0= '#curse' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9020:3: lv_curse_13_0= '#curse'
                    {
                    lv_curse_13_0=(Token)match(input,291,FOLLOW_291_in_ruleSiteInst221892); 

                            newLeafNode(lv_curse_13_0, grammarAccess.getSiteInst2Access().getCurseCurseKeyword_13_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getSiteInst2Rule());
                    	        }
                           		setWithLastConsumed(current, "curse", true, "#curse");
                    	    

                    }


                    }


                    }
                    break;
                case 15 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9034:6: ( (lv_disease_14_0= '#disease' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9034:6: ( (lv_disease_14_0= '#disease' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9035:1: (lv_disease_14_0= '#disease' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9035:1: (lv_disease_14_0= '#disease' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9036:3: lv_disease_14_0= '#disease'
                    {
                    lv_disease_14_0=(Token)match(input,292,FOLLOW_292_in_ruleSiteInst221929); 

                            newLeafNode(lv_disease_14_0, grammarAccess.getSiteInst2Access().getDiseaseDiseaseKeyword_14_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getSiteInst2Rule());
                    	        }
                           		setWithLastConsumed(current, "disease", true, "#disease");
                    	    

                    }


                    }


                    }
                    break;
                case 16 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9050:6: ( (lv_horrormark_15_0= '#horrormark' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9050:6: ( (lv_horrormark_15_0= '#horrormark' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9051:1: (lv_horrormark_15_0= '#horrormark' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9051:1: (lv_horrormark_15_0= '#horrormark' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9052:3: lv_horrormark_15_0= '#horrormark'
                    {
                    lv_horrormark_15_0=(Token)match(input,207,FOLLOW_207_in_ruleSiteInst221966); 

                            newLeafNode(lv_horrormark_15_0, grammarAccess.getSiteInst2Access().getHorrormarkHorrormarkKeyword_15_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getSiteInst2Rule());
                    	        }
                           		setWithLastConsumed(current, "horrormark", true, "#horrormark");
                    	    

                    }


                    }


                    }
                    break;
                case 17 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9066:6: ( (lv_holyfire_16_0= '#holyfire' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9066:6: ( (lv_holyfire_16_0= '#holyfire' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9067:1: (lv_holyfire_16_0= '#holyfire' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9067:1: (lv_holyfire_16_0= '#holyfire' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9068:3: lv_holyfire_16_0= '#holyfire'
                    {
                    lv_holyfire_16_0=(Token)match(input,293,FOLLOW_293_in_ruleSiteInst222003); 

                            newLeafNode(lv_holyfire_16_0, grammarAccess.getSiteInst2Access().getHolyfireHolyfireKeyword_16_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getSiteInst2Rule());
                    	        }
                           		setWithLastConsumed(current, "holyfire", true, "#holyfire");
                    	    

                    }


                    }


                    }
                    break;
                case 18 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9082:6: ( (lv_holypower_17_0= '#holypower' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9082:6: ( (lv_holypower_17_0= '#holypower' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9083:1: (lv_holypower_17_0= '#holypower' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9083:1: (lv_holypower_17_0= '#holypower' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9084:3: lv_holypower_17_0= '#holypower'
                    {
                    lv_holypower_17_0=(Token)match(input,294,FOLLOW_294_in_ruleSiteInst222040); 

                            newLeafNode(lv_holypower_17_0, grammarAccess.getSiteInst2Access().getHolypowerHolypowerKeyword_17_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getSiteInst2Rule());
                    	        }
                           		setWithLastConsumed(current, "holypower", true, "#holypower");
                    	    

                    }


                    }


                    }
                    break;
                case 19 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9098:6: ( (lv_conjcost_18_0= '#conjcost' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9098:6: ( (lv_conjcost_18_0= '#conjcost' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9099:1: (lv_conjcost_18_0= '#conjcost' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9099:1: (lv_conjcost_18_0= '#conjcost' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9100:3: lv_conjcost_18_0= '#conjcost'
                    {
                    lv_conjcost_18_0=(Token)match(input,295,FOLLOW_295_in_ruleSiteInst222077); 

                            newLeafNode(lv_conjcost_18_0, grammarAccess.getSiteInst2Access().getConjcostConjcostKeyword_18_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getSiteInst2Rule());
                    	        }
                           		setWithLastConsumed(current, "conjcost", true, "#conjcost");
                    	    

                    }


                    }


                    }
                    break;
                case 20 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9114:6: ( (lv_altcost_19_0= '#altcost' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9114:6: ( (lv_altcost_19_0= '#altcost' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9115:1: (lv_altcost_19_0= '#altcost' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9115:1: (lv_altcost_19_0= '#altcost' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9116:3: lv_altcost_19_0= '#altcost'
                    {
                    lv_altcost_19_0=(Token)match(input,296,FOLLOW_296_in_ruleSiteInst222114); 

                            newLeafNode(lv_altcost_19_0, grammarAccess.getSiteInst2Access().getAltcostAltcostKeyword_19_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getSiteInst2Rule());
                    	        }
                           		setWithLastConsumed(current, "altcost", true, "#altcost");
                    	    

                    }


                    }


                    }
                    break;
                case 21 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9130:6: ( (lv_evocost_20_0= '#evocost' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9130:6: ( (lv_evocost_20_0= '#evocost' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9131:1: (lv_evocost_20_0= '#evocost' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9131:1: (lv_evocost_20_0= '#evocost' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9132:3: lv_evocost_20_0= '#evocost'
                    {
                    lv_evocost_20_0=(Token)match(input,297,FOLLOW_297_in_ruleSiteInst222151); 

                            newLeafNode(lv_evocost_20_0, grammarAccess.getSiteInst2Access().getEvocostEvocostKeyword_20_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getSiteInst2Rule());
                    	        }
                           		setWithLastConsumed(current, "evocost", true, "#evocost");
                    	    

                    }


                    }


                    }
                    break;
                case 22 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9146:6: ( (lv_constcost_21_0= '#constcost' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9146:6: ( (lv_constcost_21_0= '#constcost' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9147:1: (lv_constcost_21_0= '#constcost' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9147:1: (lv_constcost_21_0= '#constcost' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9148:3: lv_constcost_21_0= '#constcost'
                    {
                    lv_constcost_21_0=(Token)match(input,298,FOLLOW_298_in_ruleSiteInst222188); 

                            newLeafNode(lv_constcost_21_0, grammarAccess.getSiteInst2Access().getConstcostConstcostKeyword_21_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getSiteInst2Rule());
                    	        }
                           		setWithLastConsumed(current, "constcost", true, "#constcost");
                    	    

                    }


                    }


                    }
                    break;
                case 23 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9162:6: ( (lv_enchcost_22_0= '#enchcost' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9162:6: ( (lv_enchcost_22_0= '#enchcost' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9163:1: (lv_enchcost_22_0= '#enchcost' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9163:1: (lv_enchcost_22_0= '#enchcost' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9164:3: lv_enchcost_22_0= '#enchcost'
                    {
                    lv_enchcost_22_0=(Token)match(input,299,FOLLOW_299_in_ruleSiteInst222225); 

                            newLeafNode(lv_enchcost_22_0, grammarAccess.getSiteInst2Access().getEnchcostEnchcostKeyword_22_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getSiteInst2Rule());
                    	        }
                           		setWithLastConsumed(current, "enchcost", true, "#enchcost");
                    	    

                    }


                    }


                    }
                    break;
                case 24 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9178:6: ( (lv_thaucost_23_0= '#thaucost' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9178:6: ( (lv_thaucost_23_0= '#thaucost' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9179:1: (lv_thaucost_23_0= '#thaucost' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9179:1: (lv_thaucost_23_0= '#thaucost' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9180:3: lv_thaucost_23_0= '#thaucost'
                    {
                    lv_thaucost_23_0=(Token)match(input,300,FOLLOW_300_in_ruleSiteInst222262); 

                            newLeafNode(lv_thaucost_23_0, grammarAccess.getSiteInst2Access().getThaucostThaucostKeyword_23_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getSiteInst2Rule());
                    	        }
                           		setWithLastConsumed(current, "thaucost", true, "#thaucost");
                    	    

                    }


                    }


                    }
                    break;
                case 25 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9194:6: ( (lv_bloodcost_24_0= '#bloodcost' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9194:6: ( (lv_bloodcost_24_0= '#bloodcost' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9195:1: (lv_bloodcost_24_0= '#bloodcost' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9195:1: (lv_bloodcost_24_0= '#bloodcost' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9196:3: lv_bloodcost_24_0= '#bloodcost'
                    {
                    lv_bloodcost_24_0=(Token)match(input,301,FOLLOW_301_in_ruleSiteInst222299); 

                            newLeafNode(lv_bloodcost_24_0, grammarAccess.getSiteInst2Access().getBloodcostBloodcostKeyword_24_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getSiteInst2Rule());
                    	        }
                           		setWithLastConsumed(current, "bloodcost", true, "#bloodcost");
                    	    

                    }


                    }


                    }
                    break;

            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleSiteInst2"


    // $ANTLR start "entryRuleSiteInst3"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9217:1: entryRuleSiteInst3 returns [EObject current=null] : iv_ruleSiteInst3= ruleSiteInst3 EOF ;
    public final EObject entryRuleSiteInst3() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleSiteInst3 = null;


        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9218:2: (iv_ruleSiteInst3= ruleSiteInst3 EOF )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9219:2: iv_ruleSiteInst3= ruleSiteInst3 EOF
            {
             newCompositeNode(grammarAccess.getSiteInst3Rule()); 
            pushFollow(FOLLOW_ruleSiteInst3_in_entryRuleSiteInst322348);
            iv_ruleSiteInst3=ruleSiteInst3();

            state._fsp--;

             current =iv_ruleSiteInst3; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleSiteInst322358); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleSiteInst3"


    // $ANTLR start "ruleSiteInst3"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9226:1: ruleSiteInst3 returns [EObject current=null] : ( (lv_gems_0_0= '#gems' ) ) ;
    public final EObject ruleSiteInst3() throws RecognitionException {
        EObject current = null;

        Token lv_gems_0_0=null;

         enterRule(); 
            
        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9229:28: ( ( (lv_gems_0_0= '#gems' ) ) )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9230:1: ( (lv_gems_0_0= '#gems' ) )
            {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9230:1: ( (lv_gems_0_0= '#gems' ) )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9231:1: (lv_gems_0_0= '#gems' )
            {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9231:1: (lv_gems_0_0= '#gems' )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9232:3: lv_gems_0_0= '#gems'
            {
            lv_gems_0_0=(Token)match(input,302,FOLLOW_302_in_ruleSiteInst322400); 

                    newLeafNode(lv_gems_0_0, grammarAccess.getSiteInst3Access().getGemsGemsKeyword_0());
                

            	        if (current==null) {
            	            current = createModelElement(grammarAccess.getSiteInst3Rule());
            	        }
                   		setWithLastConsumed(current, "gems", true, "#gems");
            	    

            }


            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleSiteInst3"


    // $ANTLR start "entryRuleSiteInst4"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9253:1: entryRuleSiteInst4 returns [EObject current=null] : iv_ruleSiteInst4= ruleSiteInst4 EOF ;
    public final EObject entryRuleSiteInst4() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleSiteInst4 = null;


        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9254:2: (iv_ruleSiteInst4= ruleSiteInst4 EOF )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9255:2: iv_ruleSiteInst4= ruleSiteInst4 EOF
            {
             newCompositeNode(grammarAccess.getSiteInst4Rule()); 
            pushFollow(FOLLOW_ruleSiteInst4_in_entryRuleSiteInst422448);
            iv_ruleSiteInst4=ruleSiteInst4();

            state._fsp--;

             current =iv_ruleSiteInst4; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleSiteInst422458); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleSiteInst4"


    // $ANTLR start "ruleSiteInst4"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9262:1: ruleSiteInst4 returns [EObject current=null] : ( ( (lv_clear_0_0= '#clear' ) ) | ( (lv_lab_1_0= '#lab' ) ) ) ;
    public final EObject ruleSiteInst4() throws RecognitionException {
        EObject current = null;

        Token lv_clear_0_0=null;
        Token lv_lab_1_0=null;

         enterRule(); 
            
        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9265:28: ( ( ( (lv_clear_0_0= '#clear' ) ) | ( (lv_lab_1_0= '#lab' ) ) ) )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9266:1: ( ( (lv_clear_0_0= '#clear' ) ) | ( (lv_lab_1_0= '#lab' ) ) )
            {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9266:1: ( ( (lv_clear_0_0= '#clear' ) ) | ( (lv_lab_1_0= '#lab' ) ) )
            int alt106=2;
            int LA106_0 = input.LA(1);

            if ( (LA106_0==167) ) {
                alt106=1;
            }
            else if ( (LA106_0==303) ) {
                alt106=2;
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("", 106, 0, input);

                throw nvae;
            }
            switch (alt106) {
                case 1 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9266:2: ( (lv_clear_0_0= '#clear' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9266:2: ( (lv_clear_0_0= '#clear' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9267:1: (lv_clear_0_0= '#clear' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9267:1: (lv_clear_0_0= '#clear' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9268:3: lv_clear_0_0= '#clear'
                    {
                    lv_clear_0_0=(Token)match(input,167,FOLLOW_167_in_ruleSiteInst422501); 

                            newLeafNode(lv_clear_0_0, grammarAccess.getSiteInst4Access().getClearClearKeyword_0_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getSiteInst4Rule());
                    	        }
                           		setWithLastConsumed(current, "clear", true, "#clear");
                    	    

                    }


                    }


                    }
                    break;
                case 2 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9282:6: ( (lv_lab_1_0= '#lab' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9282:6: ( (lv_lab_1_0= '#lab' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9283:1: (lv_lab_1_0= '#lab' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9283:1: (lv_lab_1_0= '#lab' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9284:3: lv_lab_1_0= '#lab'
                    {
                    lv_lab_1_0=(Token)match(input,303,FOLLOW_303_in_ruleSiteInst422538); 

                            newLeafNode(lv_lab_1_0, grammarAccess.getSiteInst4Access().getLabLabKeyword_1_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getSiteInst4Rule());
                    	        }
                           		setWithLastConsumed(current, "lab", true, "#lab");
                    	    

                    }


                    }


                    }
                    break;

            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleSiteInst4"


    // $ANTLR start "entryRuleNation"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9305:1: entryRuleNation returns [EObject current=null] : iv_ruleNation= ruleNation EOF ;
    public final EObject entryRuleNation() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleNation = null;


        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9306:2: (iv_ruleNation= ruleNation EOF )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9307:2: iv_ruleNation= ruleNation EOF
            {
             newCompositeNode(grammarAccess.getNationRule()); 
            pushFollow(FOLLOW_ruleNation_in_entryRuleNation22587);
            iv_ruleNation=ruleNation();

            state._fsp--;

             current =iv_ruleNation; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleNation22597); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleNation"


    // $ANTLR start "ruleNation"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9314:1: ruleNation returns [EObject current=null] : (this_SelectNation_0= ruleSelectNation | this_IndepFlag_1= ruleIndepFlag ) ;
    public final EObject ruleNation() throws RecognitionException {
        EObject current = null;

        EObject this_SelectNation_0 = null;

        EObject this_IndepFlag_1 = null;


         enterRule(); 
            
        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9317:28: ( (this_SelectNation_0= ruleSelectNation | this_IndepFlag_1= ruleIndepFlag ) )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9318:1: (this_SelectNation_0= ruleSelectNation | this_IndepFlag_1= ruleIndepFlag )
            {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9318:1: (this_SelectNation_0= ruleSelectNation | this_IndepFlag_1= ruleIndepFlag )
            int alt107=2;
            int LA107_0 = input.LA(1);

            if ( (LA107_0==304) ) {
                alt107=1;
            }
            else if ( (LA107_0==305) ) {
                alt107=2;
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("", 107, 0, input);

                throw nvae;
            }
            switch (alt107) {
                case 1 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9319:5: this_SelectNation_0= ruleSelectNation
                    {
                     
                            newCompositeNode(grammarAccess.getNationAccess().getSelectNationParserRuleCall_0()); 
                        
                    pushFollow(FOLLOW_ruleSelectNation_in_ruleNation22644);
                    this_SelectNation_0=ruleSelectNation();

                    state._fsp--;

                     
                            current = this_SelectNation_0; 
                            afterParserOrEnumRuleCall();
                        

                    }
                    break;
                case 2 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9329:5: this_IndepFlag_1= ruleIndepFlag
                    {
                     
                            newCompositeNode(grammarAccess.getNationAccess().getIndepFlagParserRuleCall_1()); 
                        
                    pushFollow(FOLLOW_ruleIndepFlag_in_ruleNation22671);
                    this_IndepFlag_1=ruleIndepFlag();

                    state._fsp--;

                     
                            current = this_IndepFlag_1; 
                            afterParserOrEnumRuleCall();
                        

                    }
                    break;

            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleNation"


    // $ANTLR start "entryRuleSelectNation"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9345:1: entryRuleSelectNation returns [EObject current=null] : iv_ruleSelectNation= ruleSelectNation EOF ;
    public final EObject entryRuleSelectNation() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleSelectNation = null;


        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9346:2: (iv_ruleSelectNation= ruleSelectNation EOF )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9347:2: iv_ruleSelectNation= ruleSelectNation EOF
            {
             newCompositeNode(grammarAccess.getSelectNationRule()); 
            pushFollow(FOLLOW_ruleSelectNation_in_entryRuleSelectNation22706);
            iv_ruleSelectNation=ruleSelectNation();

            state._fsp--;

             current =iv_ruleSelectNation; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleSelectNation22716); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleSelectNation"


    // $ANTLR start "ruleSelectNation"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9354:1: ruleSelectNation returns [EObject current=null] : (otherlv_0= '#selectnation' ( (lv_value_1_0= RULE_INT ) ) (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )* ( (lv_mods_3_0= ruleNationMods ) )* otherlv_4= '#end' ) ;
    public final EObject ruleSelectNation() throws RecognitionException {
        EObject current = null;

        Token otherlv_0=null;
        Token lv_value_1_0=null;
        Token this_FREE_FORM_COMMENT_2=null;
        Token otherlv_4=null;
        EObject lv_mods_3_0 = null;


         enterRule(); 
            
        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9357:28: ( (otherlv_0= '#selectnation' ( (lv_value_1_0= RULE_INT ) ) (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )* ( (lv_mods_3_0= ruleNationMods ) )* otherlv_4= '#end' ) )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9358:1: (otherlv_0= '#selectnation' ( (lv_value_1_0= RULE_INT ) ) (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )* ( (lv_mods_3_0= ruleNationMods ) )* otherlv_4= '#end' )
            {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9358:1: (otherlv_0= '#selectnation' ( (lv_value_1_0= RULE_INT ) ) (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )* ( (lv_mods_3_0= ruleNationMods ) )* otherlv_4= '#end' )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9358:3: otherlv_0= '#selectnation' ( (lv_value_1_0= RULE_INT ) ) (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )* ( (lv_mods_3_0= ruleNationMods ) )* otherlv_4= '#end'
            {
            otherlv_0=(Token)match(input,304,FOLLOW_304_in_ruleSelectNation22753); 

                	newLeafNode(otherlv_0, grammarAccess.getSelectNationAccess().getSelectnationKeyword_0());
                
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9362:1: ( (lv_value_1_0= RULE_INT ) )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9363:1: (lv_value_1_0= RULE_INT )
            {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9363:1: (lv_value_1_0= RULE_INT )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9364:3: lv_value_1_0= RULE_INT
            {
            lv_value_1_0=(Token)match(input,RULE_INT,FOLLOW_RULE_INT_in_ruleSelectNation22770); 

            			newLeafNode(lv_value_1_0, grammarAccess.getSelectNationAccess().getValueINTTerminalRuleCall_1_0()); 
            		

            	        if (current==null) {
            	            current = createModelElement(grammarAccess.getSelectNationRule());
            	        }
                   		setWithLastConsumed(
                   			current, 
                   			"value",
                    		lv_value_1_0, 
                    		"INT");
            	    

            }


            }

            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9380:2: (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )*
            loop108:
            do {
                int alt108=2;
                int LA108_0 = input.LA(1);

                if ( (LA108_0==RULE_FREE_FORM_COMMENT) ) {
                    alt108=1;
                }


                switch (alt108) {
            	case 1 :
            	    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9380:3: this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT
            	    {
            	    this_FREE_FORM_COMMENT_2=(Token)match(input,RULE_FREE_FORM_COMMENT,FOLLOW_RULE_FREE_FORM_COMMENT_in_ruleSelectNation22787); 
            	     
            	        newLeafNode(this_FREE_FORM_COMMENT_2, grammarAccess.getSelectNationAccess().getFREE_FORM_COMMENTTerminalRuleCall_2()); 
            	        

            	    }
            	    break;

            	default :
            	    break loop108;
                }
            } while (true);

            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9384:3: ( (lv_mods_3_0= ruleNationMods ) )*
            loop109:
            do {
                int alt109=2;
                int LA109_0 = input.LA(1);

                if ( (LA109_0==36||LA109_0==89||(LA109_0>=306 && LA109_0<=379)) ) {
                    alt109=1;
                }


                switch (alt109) {
            	case 1 :
            	    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9385:1: (lv_mods_3_0= ruleNationMods )
            	    {
            	    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9385:1: (lv_mods_3_0= ruleNationMods )
            	    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9386:3: lv_mods_3_0= ruleNationMods
            	    {
            	     
            	    	        newCompositeNode(grammarAccess.getSelectNationAccess().getModsNationModsParserRuleCall_3_0()); 
            	    	    
            	    pushFollow(FOLLOW_ruleNationMods_in_ruleSelectNation22809);
            	    lv_mods_3_0=ruleNationMods();

            	    state._fsp--;


            	    	        if (current==null) {
            	    	            current = createModelElementForParent(grammarAccess.getSelectNationRule());
            	    	        }
            	           		add(
            	           			current, 
            	           			"mods",
            	            		lv_mods_3_0, 
            	            		"NationMods");
            	    	        afterParserOrEnumRuleCall();
            	    	    

            	    }


            	    }
            	    break;

            	default :
            	    break loop109;
                }
            } while (true);

            otherlv_4=(Token)match(input,15,FOLLOW_15_in_ruleSelectNation22822); 

                	newLeafNode(otherlv_4, grammarAccess.getSelectNationAccess().getEndKeyword_4());
                

            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleSelectNation"


    // $ANTLR start "entryRuleIndepFlag"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9414:1: entryRuleIndepFlag returns [EObject current=null] : iv_ruleIndepFlag= ruleIndepFlag EOF ;
    public final EObject entryRuleIndepFlag() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleIndepFlag = null;


        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9415:2: (iv_ruleIndepFlag= ruleIndepFlag EOF )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9416:2: iv_ruleIndepFlag= ruleIndepFlag EOF
            {
             newCompositeNode(grammarAccess.getIndepFlagRule()); 
            pushFollow(FOLLOW_ruleIndepFlag_in_entryRuleIndepFlag22858);
            iv_ruleIndepFlag=ruleIndepFlag();

            state._fsp--;

             current =iv_ruleIndepFlag; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleIndepFlag22868); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleIndepFlag"


    // $ANTLR start "ruleIndepFlag"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9423:1: ruleIndepFlag returns [EObject current=null] : (otherlv_0= '#indepflag' ( (lv_value_1_0= RULE_STRING ) ) (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )* ) ;
    public final EObject ruleIndepFlag() throws RecognitionException {
        EObject current = null;

        Token otherlv_0=null;
        Token lv_value_1_0=null;
        Token this_FREE_FORM_COMMENT_2=null;

         enterRule(); 
            
        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9426:28: ( (otherlv_0= '#indepflag' ( (lv_value_1_0= RULE_STRING ) ) (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )* ) )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9427:1: (otherlv_0= '#indepflag' ( (lv_value_1_0= RULE_STRING ) ) (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )* )
            {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9427:1: (otherlv_0= '#indepflag' ( (lv_value_1_0= RULE_STRING ) ) (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )* )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9427:3: otherlv_0= '#indepflag' ( (lv_value_1_0= RULE_STRING ) ) (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )*
            {
            otherlv_0=(Token)match(input,305,FOLLOW_305_in_ruleIndepFlag22905); 

                	newLeafNode(otherlv_0, grammarAccess.getIndepFlagAccess().getIndepflagKeyword_0());
                
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9431:1: ( (lv_value_1_0= RULE_STRING ) )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9432:1: (lv_value_1_0= RULE_STRING )
            {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9432:1: (lv_value_1_0= RULE_STRING )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9433:3: lv_value_1_0= RULE_STRING
            {
            lv_value_1_0=(Token)match(input,RULE_STRING,FOLLOW_RULE_STRING_in_ruleIndepFlag22922); 

            			newLeafNode(lv_value_1_0, grammarAccess.getIndepFlagAccess().getValueSTRINGTerminalRuleCall_1_0()); 
            		

            	        if (current==null) {
            	            current = createModelElement(grammarAccess.getIndepFlagRule());
            	        }
                   		setWithLastConsumed(
                   			current, 
                   			"value",
                    		lv_value_1_0, 
                    		"STRING");
            	    

            }


            }

            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9449:2: (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )*
            loop110:
            do {
                int alt110=2;
                int LA110_0 = input.LA(1);

                if ( (LA110_0==RULE_FREE_FORM_COMMENT) ) {
                    alt110=1;
                }


                switch (alt110) {
            	case 1 :
            	    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9449:3: this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT
            	    {
            	    this_FREE_FORM_COMMENT_2=(Token)match(input,RULE_FREE_FORM_COMMENT,FOLLOW_RULE_FREE_FORM_COMMENT_in_ruleIndepFlag22939); 
            	     
            	        newLeafNode(this_FREE_FORM_COMMENT_2, grammarAccess.getIndepFlagAccess().getFREE_FORM_COMMENTTerminalRuleCall_2()); 
            	        

            	    }
            	    break;

            	default :
            	    break loop110;
                }
            } while (true);


            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleIndepFlag"


    // $ANTLR start "entryRuleNationMods"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9461:1: entryRuleNationMods returns [EObject current=null] : iv_ruleNationMods= ruleNationMods EOF ;
    public final EObject entryRuleNationMods() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleNationMods = null;


        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9462:2: (iv_ruleNationMods= ruleNationMods EOF )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9463:2: iv_ruleNationMods= ruleNationMods EOF
            {
             newCompositeNode(grammarAccess.getNationModsRule()); 
            pushFollow(FOLLOW_ruleNationMods_in_entryRuleNationMods22976);
            iv_ruleNationMods=ruleNationMods();

            state._fsp--;

             current =iv_ruleNationMods; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleNationMods22986); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleNationMods"


    // $ANTLR start "ruleNationMods"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9470:1: ruleNationMods returns [EObject current=null] : (this_NationPattern1_0= ruleNationPattern1 | this_NationPattern2_1= ruleNationPattern2 | this_NationPattern3_2= ruleNationPattern3 | this_NationPattern4_3= ruleNationPattern4 | this_NationPattern5_4= ruleNationPattern5 ) ;
    public final EObject ruleNationMods() throws RecognitionException {
        EObject current = null;

        EObject this_NationPattern1_0 = null;

        EObject this_NationPattern2_1 = null;

        EObject this_NationPattern3_2 = null;

        EObject this_NationPattern4_3 = null;

        EObject this_NationPattern5_4 = null;


         enterRule(); 
            
        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9473:28: ( (this_NationPattern1_0= ruleNationPattern1 | this_NationPattern2_1= ruleNationPattern2 | this_NationPattern3_2= ruleNationPattern3 | this_NationPattern4_3= ruleNationPattern4 | this_NationPattern5_4= ruleNationPattern5 ) )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9474:1: (this_NationPattern1_0= ruleNationPattern1 | this_NationPattern2_1= ruleNationPattern2 | this_NationPattern3_2= ruleNationPattern3 | this_NationPattern4_3= ruleNationPattern4 | this_NationPattern5_4= ruleNationPattern5 )
            {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9474:1: (this_NationPattern1_0= ruleNationPattern1 | this_NationPattern2_1= ruleNationPattern2 | this_NationPattern3_2= ruleNationPattern3 | this_NationPattern4_3= ruleNationPattern4 | this_NationPattern5_4= ruleNationPattern5 )
            int alt111=5;
            switch ( input.LA(1) ) {
            case 36:
            case 89:
            case 306:
            case 307:
            case 308:
            case 309:
            case 310:
            case 311:
                {
                alt111=1;
                }
                break;
            case 312:
            case 313:
            case 314:
            case 315:
            case 316:
            case 317:
            case 318:
            case 319:
            case 320:
            case 321:
            case 322:
            case 323:
            case 324:
            case 325:
            case 326:
            case 327:
            case 328:
            case 329:
            case 330:
            case 331:
            case 332:
            case 333:
            case 334:
            case 335:
            case 336:
            case 337:
            case 338:
            case 339:
            case 340:
            case 341:
                {
                alt111=2;
                }
                break;
            case 342:
            case 343:
            case 344:
            case 345:
            case 346:
            case 347:
            case 348:
            case 349:
            case 350:
            case 351:
            case 352:
            case 353:
            case 354:
            case 355:
            case 356:
                {
                alt111=3;
                }
                break;
            case 357:
            case 358:
            case 359:
            case 360:
            case 361:
            case 362:
            case 363:
            case 364:
            case 365:
            case 366:
            case 367:
            case 368:
            case 369:
            case 370:
            case 371:
            case 372:
            case 373:
            case 374:
            case 375:
            case 376:
            case 377:
            case 378:
                {
                alt111=4;
                }
                break;
            case 379:
                {
                alt111=5;
                }
                break;
            default:
                NoViableAltException nvae =
                    new NoViableAltException("", 111, 0, input);

                throw nvae;
            }

            switch (alt111) {
                case 1 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9475:5: this_NationPattern1_0= ruleNationPattern1
                    {
                     
                            newCompositeNode(grammarAccess.getNationModsAccess().getNationPattern1ParserRuleCall_0()); 
                        
                    pushFollow(FOLLOW_ruleNationPattern1_in_ruleNationMods23033);
                    this_NationPattern1_0=ruleNationPattern1();

                    state._fsp--;

                     
                            current = this_NationPattern1_0; 
                            afterParserOrEnumRuleCall();
                        

                    }
                    break;
                case 2 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9485:5: this_NationPattern2_1= ruleNationPattern2
                    {
                     
                            newCompositeNode(grammarAccess.getNationModsAccess().getNationPattern2ParserRuleCall_1()); 
                        
                    pushFollow(FOLLOW_ruleNationPattern2_in_ruleNationMods23060);
                    this_NationPattern2_1=ruleNationPattern2();

                    state._fsp--;

                     
                            current = this_NationPattern2_1; 
                            afterParserOrEnumRuleCall();
                        

                    }
                    break;
                case 3 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9495:5: this_NationPattern3_2= ruleNationPattern3
                    {
                     
                            newCompositeNode(grammarAccess.getNationModsAccess().getNationPattern3ParserRuleCall_2()); 
                        
                    pushFollow(FOLLOW_ruleNationPattern3_in_ruleNationMods23087);
                    this_NationPattern3_2=ruleNationPattern3();

                    state._fsp--;

                     
                            current = this_NationPattern3_2; 
                            afterParserOrEnumRuleCall();
                        

                    }
                    break;
                case 4 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9505:5: this_NationPattern4_3= ruleNationPattern4
                    {
                     
                            newCompositeNode(grammarAccess.getNationModsAccess().getNationPattern4ParserRuleCall_3()); 
                        
                    pushFollow(FOLLOW_ruleNationPattern4_in_ruleNationMods23114);
                    this_NationPattern4_3=ruleNationPattern4();

                    state._fsp--;

                     
                            current = this_NationPattern4_3; 
                            afterParserOrEnumRuleCall();
                        

                    }
                    break;
                case 5 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9515:5: this_NationPattern5_4= ruleNationPattern5
                    {
                     
                            newCompositeNode(grammarAccess.getNationModsAccess().getNationPattern5ParserRuleCall_4()); 
                        
                    pushFollow(FOLLOW_ruleNationPattern5_in_ruleNationMods23141);
                    this_NationPattern5_4=ruleNationPattern5();

                    state._fsp--;

                     
                            current = this_NationPattern5_4; 
                            afterParserOrEnumRuleCall();
                        

                    }
                    break;

            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleNationMods"


    // $ANTLR start "entryRuleNationPattern1"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9531:1: entryRuleNationPattern1 returns [EObject current=null] : iv_ruleNationPattern1= ruleNationPattern1 EOF ;
    public final EObject entryRuleNationPattern1() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleNationPattern1 = null;


        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9532:2: (iv_ruleNationPattern1= ruleNationPattern1 EOF )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9533:2: iv_ruleNationPattern1= ruleNationPattern1 EOF
            {
             newCompositeNode(grammarAccess.getNationPattern1Rule()); 
            pushFollow(FOLLOW_ruleNationPattern1_in_entryRuleNationPattern123176);
            iv_ruleNationPattern1=ruleNationPattern1();

            state._fsp--;

             current =iv_ruleNationPattern1; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleNationPattern123186); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleNationPattern1"


    // $ANTLR start "ruleNationPattern1"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9540:1: ruleNationPattern1 returns [EObject current=null] : (this_NationInst1_0= ruleNationInst1 ( (lv_value_1_0= RULE_STRING ) ) (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )* ) ;
    public final EObject ruleNationPattern1() throws RecognitionException {
        EObject current = null;

        Token lv_value_1_0=null;
        Token this_FREE_FORM_COMMENT_2=null;
        EObject this_NationInst1_0 = null;


         enterRule(); 
            
        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9543:28: ( (this_NationInst1_0= ruleNationInst1 ( (lv_value_1_0= RULE_STRING ) ) (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )* ) )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9544:1: (this_NationInst1_0= ruleNationInst1 ( (lv_value_1_0= RULE_STRING ) ) (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )* )
            {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9544:1: (this_NationInst1_0= ruleNationInst1 ( (lv_value_1_0= RULE_STRING ) ) (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )* )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9545:5: this_NationInst1_0= ruleNationInst1 ( (lv_value_1_0= RULE_STRING ) ) (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )*
            {
             
                    newCompositeNode(grammarAccess.getNationPattern1Access().getNationInst1ParserRuleCall_0()); 
                
            pushFollow(FOLLOW_ruleNationInst1_in_ruleNationPattern123233);
            this_NationInst1_0=ruleNationInst1();

            state._fsp--;

             
                    current = this_NationInst1_0; 
                    afterParserOrEnumRuleCall();
                
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9553:1: ( (lv_value_1_0= RULE_STRING ) )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9554:1: (lv_value_1_0= RULE_STRING )
            {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9554:1: (lv_value_1_0= RULE_STRING )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9555:3: lv_value_1_0= RULE_STRING
            {
            lv_value_1_0=(Token)match(input,RULE_STRING,FOLLOW_RULE_STRING_in_ruleNationPattern123249); 

            			newLeafNode(lv_value_1_0, grammarAccess.getNationPattern1Access().getValueSTRINGTerminalRuleCall_1_0()); 
            		

            	        if (current==null) {
            	            current = createModelElement(grammarAccess.getNationPattern1Rule());
            	        }
                   		setWithLastConsumed(
                   			current, 
                   			"value",
                    		lv_value_1_0, 
                    		"STRING");
            	    

            }


            }

            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9571:2: (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )*
            loop112:
            do {
                int alt112=2;
                int LA112_0 = input.LA(1);

                if ( (LA112_0==RULE_FREE_FORM_COMMENT) ) {
                    alt112=1;
                }


                switch (alt112) {
            	case 1 :
            	    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9571:3: this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT
            	    {
            	    this_FREE_FORM_COMMENT_2=(Token)match(input,RULE_FREE_FORM_COMMENT,FOLLOW_RULE_FREE_FORM_COMMENT_in_ruleNationPattern123266); 
            	     
            	        newLeafNode(this_FREE_FORM_COMMENT_2, grammarAccess.getNationPattern1Access().getFREE_FORM_COMMENTTerminalRuleCall_2()); 
            	        

            	    }
            	    break;

            	default :
            	    break loop112;
                }
            } while (true);


            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleNationPattern1"


    // $ANTLR start "entryRuleNationPattern2"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9583:1: entryRuleNationPattern2 returns [EObject current=null] : iv_ruleNationPattern2= ruleNationPattern2 EOF ;
    public final EObject entryRuleNationPattern2() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleNationPattern2 = null;


        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9584:2: (iv_ruleNationPattern2= ruleNationPattern2 EOF )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9585:2: iv_ruleNationPattern2= ruleNationPattern2 EOF
            {
             newCompositeNode(grammarAccess.getNationPattern2Rule()); 
            pushFollow(FOLLOW_ruleNationPattern2_in_entryRuleNationPattern223303);
            iv_ruleNationPattern2=ruleNationPattern2();

            state._fsp--;

             current =iv_ruleNationPattern2; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleNationPattern223313); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleNationPattern2"


    // $ANTLR start "ruleNationPattern2"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9592:1: ruleNationPattern2 returns [EObject current=null] : (this_NationInst2_0= ruleNationInst2 ( (lv_value_1_0= RULE_INT ) ) (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )* ) ;
    public final EObject ruleNationPattern2() throws RecognitionException {
        EObject current = null;

        Token lv_value_1_0=null;
        Token this_FREE_FORM_COMMENT_2=null;
        EObject this_NationInst2_0 = null;


         enterRule(); 
            
        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9595:28: ( (this_NationInst2_0= ruleNationInst2 ( (lv_value_1_0= RULE_INT ) ) (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )* ) )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9596:1: (this_NationInst2_0= ruleNationInst2 ( (lv_value_1_0= RULE_INT ) ) (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )* )
            {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9596:1: (this_NationInst2_0= ruleNationInst2 ( (lv_value_1_0= RULE_INT ) ) (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )* )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9597:5: this_NationInst2_0= ruleNationInst2 ( (lv_value_1_0= RULE_INT ) ) (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )*
            {
             
                    newCompositeNode(grammarAccess.getNationPattern2Access().getNationInst2ParserRuleCall_0()); 
                
            pushFollow(FOLLOW_ruleNationInst2_in_ruleNationPattern223360);
            this_NationInst2_0=ruleNationInst2();

            state._fsp--;

             
                    current = this_NationInst2_0; 
                    afterParserOrEnumRuleCall();
                
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9605:1: ( (lv_value_1_0= RULE_INT ) )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9606:1: (lv_value_1_0= RULE_INT )
            {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9606:1: (lv_value_1_0= RULE_INT )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9607:3: lv_value_1_0= RULE_INT
            {
            lv_value_1_0=(Token)match(input,RULE_INT,FOLLOW_RULE_INT_in_ruleNationPattern223376); 

            			newLeafNode(lv_value_1_0, grammarAccess.getNationPattern2Access().getValueINTTerminalRuleCall_1_0()); 
            		

            	        if (current==null) {
            	            current = createModelElement(grammarAccess.getNationPattern2Rule());
            	        }
                   		setWithLastConsumed(
                   			current, 
                   			"value",
                    		lv_value_1_0, 
                    		"INT");
            	    

            }


            }

            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9623:2: (this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT )*
            loop113:
            do {
                int alt113=2;
                int LA113_0 = input.LA(1);

                if ( (LA113_0==RULE_FREE_FORM_COMMENT) ) {
                    alt113=1;
                }


                switch (alt113) {
            	case 1 :
            	    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9623:3: this_FREE_FORM_COMMENT_2= RULE_FREE_FORM_COMMENT
            	    {
            	    this_FREE_FORM_COMMENT_2=(Token)match(input,RULE_FREE_FORM_COMMENT,FOLLOW_RULE_FREE_FORM_COMMENT_in_ruleNationPattern223393); 
            	     
            	        newLeafNode(this_FREE_FORM_COMMENT_2, grammarAccess.getNationPattern2Access().getFREE_FORM_COMMENTTerminalRuleCall_2()); 
            	        

            	    }
            	    break;

            	default :
            	    break loop113;
                }
            } while (true);


            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleNationPattern2"


    // $ANTLR start "entryRuleNationPattern3"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9635:1: entryRuleNationPattern3 returns [EObject current=null] : iv_ruleNationPattern3= ruleNationPattern3 EOF ;
    public final EObject entryRuleNationPattern3() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleNationPattern3 = null;


        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9636:2: (iv_ruleNationPattern3= ruleNationPattern3 EOF )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9637:2: iv_ruleNationPattern3= ruleNationPattern3 EOF
            {
             newCompositeNode(grammarAccess.getNationPattern3Rule()); 
            pushFollow(FOLLOW_ruleNationPattern3_in_entryRuleNationPattern323430);
            iv_ruleNationPattern3=ruleNationPattern3();

            state._fsp--;

             current =iv_ruleNationPattern3; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleNationPattern323440); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleNationPattern3"


    // $ANTLR start "ruleNationPattern3"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9644:1: ruleNationPattern3 returns [EObject current=null] : (this_NationInst3_0= ruleNationInst3 (this_FREE_FORM_COMMENT_1= RULE_FREE_FORM_COMMENT )* ) ;
    public final EObject ruleNationPattern3() throws RecognitionException {
        EObject current = null;

        Token this_FREE_FORM_COMMENT_1=null;
        EObject this_NationInst3_0 = null;


         enterRule(); 
            
        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9647:28: ( (this_NationInst3_0= ruleNationInst3 (this_FREE_FORM_COMMENT_1= RULE_FREE_FORM_COMMENT )* ) )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9648:1: (this_NationInst3_0= ruleNationInst3 (this_FREE_FORM_COMMENT_1= RULE_FREE_FORM_COMMENT )* )
            {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9648:1: (this_NationInst3_0= ruleNationInst3 (this_FREE_FORM_COMMENT_1= RULE_FREE_FORM_COMMENT )* )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9649:5: this_NationInst3_0= ruleNationInst3 (this_FREE_FORM_COMMENT_1= RULE_FREE_FORM_COMMENT )*
            {
             
                    newCompositeNode(grammarAccess.getNationPattern3Access().getNationInst3ParserRuleCall_0()); 
                
            pushFollow(FOLLOW_ruleNationInst3_in_ruleNationPattern323487);
            this_NationInst3_0=ruleNationInst3();

            state._fsp--;

             
                    current = this_NationInst3_0; 
                    afterParserOrEnumRuleCall();
                
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9657:1: (this_FREE_FORM_COMMENT_1= RULE_FREE_FORM_COMMENT )*
            loop114:
            do {
                int alt114=2;
                int LA114_0 = input.LA(1);

                if ( (LA114_0==RULE_FREE_FORM_COMMENT) ) {
                    alt114=1;
                }


                switch (alt114) {
            	case 1 :
            	    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9657:2: this_FREE_FORM_COMMENT_1= RULE_FREE_FORM_COMMENT
            	    {
            	    this_FREE_FORM_COMMENT_1=(Token)match(input,RULE_FREE_FORM_COMMENT,FOLLOW_RULE_FREE_FORM_COMMENT_in_ruleNationPattern323498); 
            	     
            	        newLeafNode(this_FREE_FORM_COMMENT_1, grammarAccess.getNationPattern3Access().getFREE_FORM_COMMENTTerminalRuleCall_1()); 
            	        

            	    }
            	    break;

            	default :
            	    break loop114;
                }
            } while (true);


            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleNationPattern3"


    // $ANTLR start "entryRuleNationPattern4"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9669:1: entryRuleNationPattern4 returns [EObject current=null] : iv_ruleNationPattern4= ruleNationPattern4 EOF ;
    public final EObject entryRuleNationPattern4() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleNationPattern4 = null;


        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9670:2: (iv_ruleNationPattern4= ruleNationPattern4 EOF )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9671:2: iv_ruleNationPattern4= ruleNationPattern4 EOF
            {
             newCompositeNode(grammarAccess.getNationPattern4Rule()); 
            pushFollow(FOLLOW_ruleNationPattern4_in_entryRuleNationPattern423535);
            iv_ruleNationPattern4=ruleNationPattern4();

            state._fsp--;

             current =iv_ruleNationPattern4; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleNationPattern423545); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleNationPattern4"


    // $ANTLR start "ruleNationPattern4"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9678:1: ruleNationPattern4 returns [EObject current=null] : (this_NationInst4_0= ruleNationInst4 ( ( (lv_value1_1_0= RULE_STRING ) ) | ( (lv_value2_2_0= RULE_INT ) ) ) (this_FREE_FORM_COMMENT_3= RULE_FREE_FORM_COMMENT )* ) ;
    public final EObject ruleNationPattern4() throws RecognitionException {
        EObject current = null;

        Token lv_value1_1_0=null;
        Token lv_value2_2_0=null;
        Token this_FREE_FORM_COMMENT_3=null;
        EObject this_NationInst4_0 = null;


         enterRule(); 
            
        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9681:28: ( (this_NationInst4_0= ruleNationInst4 ( ( (lv_value1_1_0= RULE_STRING ) ) | ( (lv_value2_2_0= RULE_INT ) ) ) (this_FREE_FORM_COMMENT_3= RULE_FREE_FORM_COMMENT )* ) )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9682:1: (this_NationInst4_0= ruleNationInst4 ( ( (lv_value1_1_0= RULE_STRING ) ) | ( (lv_value2_2_0= RULE_INT ) ) ) (this_FREE_FORM_COMMENT_3= RULE_FREE_FORM_COMMENT )* )
            {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9682:1: (this_NationInst4_0= ruleNationInst4 ( ( (lv_value1_1_0= RULE_STRING ) ) | ( (lv_value2_2_0= RULE_INT ) ) ) (this_FREE_FORM_COMMENT_3= RULE_FREE_FORM_COMMENT )* )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9683:5: this_NationInst4_0= ruleNationInst4 ( ( (lv_value1_1_0= RULE_STRING ) ) | ( (lv_value2_2_0= RULE_INT ) ) ) (this_FREE_FORM_COMMENT_3= RULE_FREE_FORM_COMMENT )*
            {
             
                    newCompositeNode(grammarAccess.getNationPattern4Access().getNationInst4ParserRuleCall_0()); 
                
            pushFollow(FOLLOW_ruleNationInst4_in_ruleNationPattern423592);
            this_NationInst4_0=ruleNationInst4();

            state._fsp--;

             
                    current = this_NationInst4_0; 
                    afterParserOrEnumRuleCall();
                
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9691:1: ( ( (lv_value1_1_0= RULE_STRING ) ) | ( (lv_value2_2_0= RULE_INT ) ) )
            int alt115=2;
            int LA115_0 = input.LA(1);

            if ( (LA115_0==RULE_STRING) ) {
                alt115=1;
            }
            else if ( (LA115_0==RULE_INT) ) {
                alt115=2;
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("", 115, 0, input);

                throw nvae;
            }
            switch (alt115) {
                case 1 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9691:2: ( (lv_value1_1_0= RULE_STRING ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9691:2: ( (lv_value1_1_0= RULE_STRING ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9692:1: (lv_value1_1_0= RULE_STRING )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9692:1: (lv_value1_1_0= RULE_STRING )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9693:3: lv_value1_1_0= RULE_STRING
                    {
                    lv_value1_1_0=(Token)match(input,RULE_STRING,FOLLOW_RULE_STRING_in_ruleNationPattern423609); 

                    			newLeafNode(lv_value1_1_0, grammarAccess.getNationPattern4Access().getValue1STRINGTerminalRuleCall_1_0_0()); 
                    		

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getNationPattern4Rule());
                    	        }
                           		setWithLastConsumed(
                           			current, 
                           			"value1",
                            		lv_value1_1_0, 
                            		"STRING");
                    	    

                    }


                    }


                    }
                    break;
                case 2 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9710:6: ( (lv_value2_2_0= RULE_INT ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9710:6: ( (lv_value2_2_0= RULE_INT ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9711:1: (lv_value2_2_0= RULE_INT )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9711:1: (lv_value2_2_0= RULE_INT )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9712:3: lv_value2_2_0= RULE_INT
                    {
                    lv_value2_2_0=(Token)match(input,RULE_INT,FOLLOW_RULE_INT_in_ruleNationPattern423637); 

                    			newLeafNode(lv_value2_2_0, grammarAccess.getNationPattern4Access().getValue2INTTerminalRuleCall_1_1_0()); 
                    		

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getNationPattern4Rule());
                    	        }
                           		setWithLastConsumed(
                           			current, 
                           			"value2",
                            		lv_value2_2_0, 
                            		"INT");
                    	    

                    }


                    }


                    }
                    break;

            }

            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9728:3: (this_FREE_FORM_COMMENT_3= RULE_FREE_FORM_COMMENT )*
            loop116:
            do {
                int alt116=2;
                int LA116_0 = input.LA(1);

                if ( (LA116_0==RULE_FREE_FORM_COMMENT) ) {
                    alt116=1;
                }


                switch (alt116) {
            	case 1 :
            	    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9728:4: this_FREE_FORM_COMMENT_3= RULE_FREE_FORM_COMMENT
            	    {
            	    this_FREE_FORM_COMMENT_3=(Token)match(input,RULE_FREE_FORM_COMMENT,FOLLOW_RULE_FREE_FORM_COMMENT_in_ruleNationPattern423655); 
            	     
            	        newLeafNode(this_FREE_FORM_COMMENT_3, grammarAccess.getNationPattern4Access().getFREE_FORM_COMMENTTerminalRuleCall_2()); 
            	        

            	    }
            	    break;

            	default :
            	    break loop116;
                }
            } while (true);


            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleNationPattern4"


    // $ANTLR start "entryRuleNationPattern5"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9740:1: entryRuleNationPattern5 returns [EObject current=null] : iv_ruleNationPattern5= ruleNationPattern5 EOF ;
    public final EObject entryRuleNationPattern5() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleNationPattern5 = null;


        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9741:2: (iv_ruleNationPattern5= ruleNationPattern5 EOF )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9742:2: iv_ruleNationPattern5= ruleNationPattern5 EOF
            {
             newCompositeNode(grammarAccess.getNationPattern5Rule()); 
            pushFollow(FOLLOW_ruleNationPattern5_in_entryRuleNationPattern523692);
            iv_ruleNationPattern5=ruleNationPattern5();

            state._fsp--;

             current =iv_ruleNationPattern5; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleNationPattern523702); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleNationPattern5"


    // $ANTLR start "ruleNationPattern5"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9749:1: ruleNationPattern5 returns [EObject current=null] : (this_NationInst5_0= ruleNationInst5 ( (lv_value1_1_0= ruleDecimalValue ) ) ( (lv_value2_2_0= ruleDecimalValue ) ) ( (lv_value3_3_0= ruleDecimalValue ) ) (this_FREE_FORM_COMMENT_4= RULE_FREE_FORM_COMMENT )* ) ;
    public final EObject ruleNationPattern5() throws RecognitionException {
        EObject current = null;

        Token this_FREE_FORM_COMMENT_4=null;
        EObject this_NationInst5_0 = null;

        AntlrDatatypeRuleToken lv_value1_1_0 = null;

        AntlrDatatypeRuleToken lv_value2_2_0 = null;

        AntlrDatatypeRuleToken lv_value3_3_0 = null;


         enterRule(); 
            
        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9752:28: ( (this_NationInst5_0= ruleNationInst5 ( (lv_value1_1_0= ruleDecimalValue ) ) ( (lv_value2_2_0= ruleDecimalValue ) ) ( (lv_value3_3_0= ruleDecimalValue ) ) (this_FREE_FORM_COMMENT_4= RULE_FREE_FORM_COMMENT )* ) )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9753:1: (this_NationInst5_0= ruleNationInst5 ( (lv_value1_1_0= ruleDecimalValue ) ) ( (lv_value2_2_0= ruleDecimalValue ) ) ( (lv_value3_3_0= ruleDecimalValue ) ) (this_FREE_FORM_COMMENT_4= RULE_FREE_FORM_COMMENT )* )
            {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9753:1: (this_NationInst5_0= ruleNationInst5 ( (lv_value1_1_0= ruleDecimalValue ) ) ( (lv_value2_2_0= ruleDecimalValue ) ) ( (lv_value3_3_0= ruleDecimalValue ) ) (this_FREE_FORM_COMMENT_4= RULE_FREE_FORM_COMMENT )* )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9754:5: this_NationInst5_0= ruleNationInst5 ( (lv_value1_1_0= ruleDecimalValue ) ) ( (lv_value2_2_0= ruleDecimalValue ) ) ( (lv_value3_3_0= ruleDecimalValue ) ) (this_FREE_FORM_COMMENT_4= RULE_FREE_FORM_COMMENT )*
            {
             
                    newCompositeNode(grammarAccess.getNationPattern5Access().getNationInst5ParserRuleCall_0()); 
                
            pushFollow(FOLLOW_ruleNationInst5_in_ruleNationPattern523749);
            this_NationInst5_0=ruleNationInst5();

            state._fsp--;

             
                    current = this_NationInst5_0; 
                    afterParserOrEnumRuleCall();
                
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9762:1: ( (lv_value1_1_0= ruleDecimalValue ) )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9763:1: (lv_value1_1_0= ruleDecimalValue )
            {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9763:1: (lv_value1_1_0= ruleDecimalValue )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9764:3: lv_value1_1_0= ruleDecimalValue
            {
             
            	        newCompositeNode(grammarAccess.getNationPattern5Access().getValue1DecimalValueParserRuleCall_1_0()); 
            	    
            pushFollow(FOLLOW_ruleDecimalValue_in_ruleNationPattern523769);
            lv_value1_1_0=ruleDecimalValue();

            state._fsp--;


            	        if (current==null) {
            	            current = createModelElementForParent(grammarAccess.getNationPattern5Rule());
            	        }
                   		set(
                   			current, 
                   			"value1",
                    		lv_value1_1_0, 
                    		"DecimalValue");
            	        afterParserOrEnumRuleCall();
            	    

            }


            }

            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9780:2: ( (lv_value2_2_0= ruleDecimalValue ) )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9781:1: (lv_value2_2_0= ruleDecimalValue )
            {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9781:1: (lv_value2_2_0= ruleDecimalValue )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9782:3: lv_value2_2_0= ruleDecimalValue
            {
             
            	        newCompositeNode(grammarAccess.getNationPattern5Access().getValue2DecimalValueParserRuleCall_2_0()); 
            	    
            pushFollow(FOLLOW_ruleDecimalValue_in_ruleNationPattern523790);
            lv_value2_2_0=ruleDecimalValue();

            state._fsp--;


            	        if (current==null) {
            	            current = createModelElementForParent(grammarAccess.getNationPattern5Rule());
            	        }
                   		set(
                   			current, 
                   			"value2",
                    		lv_value2_2_0, 
                    		"DecimalValue");
            	        afterParserOrEnumRuleCall();
            	    

            }


            }

            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9798:2: ( (lv_value3_3_0= ruleDecimalValue ) )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9799:1: (lv_value3_3_0= ruleDecimalValue )
            {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9799:1: (lv_value3_3_0= ruleDecimalValue )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9800:3: lv_value3_3_0= ruleDecimalValue
            {
             
            	        newCompositeNode(grammarAccess.getNationPattern5Access().getValue3DecimalValueParserRuleCall_3_0()); 
            	    
            pushFollow(FOLLOW_ruleDecimalValue_in_ruleNationPattern523811);
            lv_value3_3_0=ruleDecimalValue();

            state._fsp--;


            	        if (current==null) {
            	            current = createModelElementForParent(grammarAccess.getNationPattern5Rule());
            	        }
                   		set(
                   			current, 
                   			"value3",
                    		lv_value3_3_0, 
                    		"DecimalValue");
            	        afterParserOrEnumRuleCall();
            	    

            }


            }

            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9816:2: (this_FREE_FORM_COMMENT_4= RULE_FREE_FORM_COMMENT )*
            loop117:
            do {
                int alt117=2;
                int LA117_0 = input.LA(1);

                if ( (LA117_0==RULE_FREE_FORM_COMMENT) ) {
                    alt117=1;
                }


                switch (alt117) {
            	case 1 :
            	    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9816:3: this_FREE_FORM_COMMENT_4= RULE_FREE_FORM_COMMENT
            	    {
            	    this_FREE_FORM_COMMENT_4=(Token)match(input,RULE_FREE_FORM_COMMENT,FOLLOW_RULE_FREE_FORM_COMMENT_in_ruleNationPattern523823); 
            	     
            	        newLeafNode(this_FREE_FORM_COMMENT_4, grammarAccess.getNationPattern5Access().getFREE_FORM_COMMENTTerminalRuleCall_4()); 
            	        

            	    }
            	    break;

            	default :
            	    break loop117;
                }
            } while (true);


            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleNationPattern5"


    // $ANTLR start "entryRuleNationInst1"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9828:1: entryRuleNationInst1 returns [EObject current=null] : iv_ruleNationInst1= ruleNationInst1 EOF ;
    public final EObject entryRuleNationInst1() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleNationInst1 = null;


        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9829:2: (iv_ruleNationInst1= ruleNationInst1 EOF )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9830:2: iv_ruleNationInst1= ruleNationInst1 EOF
            {
             newCompositeNode(grammarAccess.getNationInst1Rule()); 
            pushFollow(FOLLOW_ruleNationInst1_in_entryRuleNationInst123860);
            iv_ruleNationInst1=ruleNationInst1();

            state._fsp--;

             current =iv_ruleNationInst1; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleNationInst123870); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleNationInst1"


    // $ANTLR start "ruleNationInst1"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9837:1: ruleNationInst1 returns [EObject current=null] : ( ( (lv_name_0_0= '#name' ) ) | ( (lv_epithet_1_0= '#epithet' ) ) | ( (lv_descr_2_0= '#descr' ) ) | ( (lv_summary_3_0= '#summary' ) ) | ( (lv_brief_4_0= '#brief' ) ) | ( (lv_flag_5_0= '#flag' ) ) | ( (lv_mapbackground_6_0= '#mapbackground' ) ) | ( (lv_startsite_7_0= '#startsite' ) ) ) ;
    public final EObject ruleNationInst1() throws RecognitionException {
        EObject current = null;

        Token lv_name_0_0=null;
        Token lv_epithet_1_0=null;
        Token lv_descr_2_0=null;
        Token lv_summary_3_0=null;
        Token lv_brief_4_0=null;
        Token lv_flag_5_0=null;
        Token lv_mapbackground_6_0=null;
        Token lv_startsite_7_0=null;

         enterRule(); 
            
        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9840:28: ( ( ( (lv_name_0_0= '#name' ) ) | ( (lv_epithet_1_0= '#epithet' ) ) | ( (lv_descr_2_0= '#descr' ) ) | ( (lv_summary_3_0= '#summary' ) ) | ( (lv_brief_4_0= '#brief' ) ) | ( (lv_flag_5_0= '#flag' ) ) | ( (lv_mapbackground_6_0= '#mapbackground' ) ) | ( (lv_startsite_7_0= '#startsite' ) ) ) )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9841:1: ( ( (lv_name_0_0= '#name' ) ) | ( (lv_epithet_1_0= '#epithet' ) ) | ( (lv_descr_2_0= '#descr' ) ) | ( (lv_summary_3_0= '#summary' ) ) | ( (lv_brief_4_0= '#brief' ) ) | ( (lv_flag_5_0= '#flag' ) ) | ( (lv_mapbackground_6_0= '#mapbackground' ) ) | ( (lv_startsite_7_0= '#startsite' ) ) )
            {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9841:1: ( ( (lv_name_0_0= '#name' ) ) | ( (lv_epithet_1_0= '#epithet' ) ) | ( (lv_descr_2_0= '#descr' ) ) | ( (lv_summary_3_0= '#summary' ) ) | ( (lv_brief_4_0= '#brief' ) ) | ( (lv_flag_5_0= '#flag' ) ) | ( (lv_mapbackground_6_0= '#mapbackground' ) ) | ( (lv_startsite_7_0= '#startsite' ) ) )
            int alt118=8;
            switch ( input.LA(1) ) {
            case 36:
                {
                alt118=1;
                }
                break;
            case 306:
                {
                alt118=2;
                }
                break;
            case 89:
                {
                alt118=3;
                }
                break;
            case 307:
                {
                alt118=4;
                }
                break;
            case 308:
                {
                alt118=5;
                }
                break;
            case 309:
                {
                alt118=6;
                }
                break;
            case 310:
                {
                alt118=7;
                }
                break;
            case 311:
                {
                alt118=8;
                }
                break;
            default:
                NoViableAltException nvae =
                    new NoViableAltException("", 118, 0, input);

                throw nvae;
            }

            switch (alt118) {
                case 1 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9841:2: ( (lv_name_0_0= '#name' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9841:2: ( (lv_name_0_0= '#name' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9842:1: (lv_name_0_0= '#name' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9842:1: (lv_name_0_0= '#name' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9843:3: lv_name_0_0= '#name'
                    {
                    lv_name_0_0=(Token)match(input,36,FOLLOW_36_in_ruleNationInst123913); 

                            newLeafNode(lv_name_0_0, grammarAccess.getNationInst1Access().getNameNameKeyword_0_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getNationInst1Rule());
                    	        }
                           		setWithLastConsumed(current, "name", true, "#name");
                    	    

                    }


                    }


                    }
                    break;
                case 2 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9857:6: ( (lv_epithet_1_0= '#epithet' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9857:6: ( (lv_epithet_1_0= '#epithet' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9858:1: (lv_epithet_1_0= '#epithet' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9858:1: (lv_epithet_1_0= '#epithet' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9859:3: lv_epithet_1_0= '#epithet'
                    {
                    lv_epithet_1_0=(Token)match(input,306,FOLLOW_306_in_ruleNationInst123950); 

                            newLeafNode(lv_epithet_1_0, grammarAccess.getNationInst1Access().getEpithetEpithetKeyword_1_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getNationInst1Rule());
                    	        }
                           		setWithLastConsumed(current, "epithet", true, "#epithet");
                    	    

                    }


                    }


                    }
                    break;
                case 3 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9873:6: ( (lv_descr_2_0= '#descr' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9873:6: ( (lv_descr_2_0= '#descr' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9874:1: (lv_descr_2_0= '#descr' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9874:1: (lv_descr_2_0= '#descr' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9875:3: lv_descr_2_0= '#descr'
                    {
                    lv_descr_2_0=(Token)match(input,89,FOLLOW_89_in_ruleNationInst123987); 

                            newLeafNode(lv_descr_2_0, grammarAccess.getNationInst1Access().getDescrDescrKeyword_2_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getNationInst1Rule());
                    	        }
                           		setWithLastConsumed(current, "descr", true, "#descr");
                    	    

                    }


                    }


                    }
                    break;
                case 4 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9889:6: ( (lv_summary_3_0= '#summary' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9889:6: ( (lv_summary_3_0= '#summary' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9890:1: (lv_summary_3_0= '#summary' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9890:1: (lv_summary_3_0= '#summary' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9891:3: lv_summary_3_0= '#summary'
                    {
                    lv_summary_3_0=(Token)match(input,307,FOLLOW_307_in_ruleNationInst124024); 

                            newLeafNode(lv_summary_3_0, grammarAccess.getNationInst1Access().getSummarySummaryKeyword_3_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getNationInst1Rule());
                    	        }
                           		setWithLastConsumed(current, "summary", true, "#summary");
                    	    

                    }


                    }


                    }
                    break;
                case 5 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9905:6: ( (lv_brief_4_0= '#brief' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9905:6: ( (lv_brief_4_0= '#brief' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9906:1: (lv_brief_4_0= '#brief' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9906:1: (lv_brief_4_0= '#brief' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9907:3: lv_brief_4_0= '#brief'
                    {
                    lv_brief_4_0=(Token)match(input,308,FOLLOW_308_in_ruleNationInst124061); 

                            newLeafNode(lv_brief_4_0, grammarAccess.getNationInst1Access().getBriefBriefKeyword_4_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getNationInst1Rule());
                    	        }
                           		setWithLastConsumed(current, "brief", true, "#brief");
                    	    

                    }


                    }


                    }
                    break;
                case 6 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9921:6: ( (lv_flag_5_0= '#flag' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9921:6: ( (lv_flag_5_0= '#flag' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9922:1: (lv_flag_5_0= '#flag' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9922:1: (lv_flag_5_0= '#flag' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9923:3: lv_flag_5_0= '#flag'
                    {
                    lv_flag_5_0=(Token)match(input,309,FOLLOW_309_in_ruleNationInst124098); 

                            newLeafNode(lv_flag_5_0, grammarAccess.getNationInst1Access().getFlagFlagKeyword_5_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getNationInst1Rule());
                    	        }
                           		setWithLastConsumed(current, "flag", true, "#flag");
                    	    

                    }


                    }


                    }
                    break;
                case 7 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9937:6: ( (lv_mapbackground_6_0= '#mapbackground' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9937:6: ( (lv_mapbackground_6_0= '#mapbackground' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9938:1: (lv_mapbackground_6_0= '#mapbackground' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9938:1: (lv_mapbackground_6_0= '#mapbackground' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9939:3: lv_mapbackground_6_0= '#mapbackground'
                    {
                    lv_mapbackground_6_0=(Token)match(input,310,FOLLOW_310_in_ruleNationInst124135); 

                            newLeafNode(lv_mapbackground_6_0, grammarAccess.getNationInst1Access().getMapbackgroundMapbackgroundKeyword_6_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getNationInst1Rule());
                    	        }
                           		setWithLastConsumed(current, "mapbackground", true, "#mapbackground");
                    	    

                    }


                    }


                    }
                    break;
                case 8 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9953:6: ( (lv_startsite_7_0= '#startsite' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9953:6: ( (lv_startsite_7_0= '#startsite' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9954:1: (lv_startsite_7_0= '#startsite' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9954:1: (lv_startsite_7_0= '#startsite' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9955:3: lv_startsite_7_0= '#startsite'
                    {
                    lv_startsite_7_0=(Token)match(input,311,FOLLOW_311_in_ruleNationInst124172); 

                            newLeafNode(lv_startsite_7_0, grammarAccess.getNationInst1Access().getStartsiteStartsiteKeyword_7_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getNationInst1Rule());
                    	        }
                           		setWithLastConsumed(current, "startsite", true, "#startsite");
                    	    

                    }


                    }


                    }
                    break;

            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleNationInst1"


    // $ANTLR start "entryRuleNationInst2"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9976:1: entryRuleNationInst2 returns [EObject current=null] : iv_ruleNationInst2= ruleNationInst2 EOF ;
    public final EObject entryRuleNationInst2() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleNationInst2 = null;


        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9977:2: (iv_ruleNationInst2= ruleNationInst2 EOF )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9978:2: iv_ruleNationInst2= ruleNationInst2 EOF
            {
             newCompositeNode(grammarAccess.getNationInst2Rule()); 
            pushFollow(FOLLOW_ruleNationInst2_in_entryRuleNationInst224221);
            iv_ruleNationInst2=ruleNationInst2();

            state._fsp--;

             current =iv_ruleNationInst2; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleNationInst224231); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleNationInst2"


    // $ANTLR start "ruleNationInst2"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9985:1: ruleNationInst2 returns [EObject current=null] : ( ( (lv_era_0_0= '#era' ) ) | ( (lv_labcost_1_0= '#labcost' ) ) | ( (lv_templecost_2_0= '#templecost' ) ) | ( (lv_templepic_3_0= '#templepic' ) ) | ( (lv_startunitnbrs1_4_0= '#startunitnbrs1' ) ) | ( (lv_startunitnbrs2_5_0= '#startunitnbrs2' ) ) | ( (lv_hero1_6_0= '#hero1' ) ) | ( (lv_hero2_7_0= '#hero2' ) ) | ( (lv_hero3_8_0= '#hero3' ) ) | ( (lv_hero4_9_0= '#hero4' ) ) | ( (lv_hero5_10_0= '#hero5' ) ) | ( (lv_hero6_11_0= '#hero6' ) ) | ( (lv_multihero1_12_0= '#multihero1' ) ) | ( (lv_multihero2_13_0= '#multihero2' ) ) | ( (lv_defmult1_14_0= '#defmult1' ) ) | ( (lv_defmult1b_15_0= '#defmult1b' ) ) | ( (lv_defmult2_16_0= '#defmult2' ) ) | ( (lv_defmult2b_17_0= '#defmult2b' ) ) | ( (lv_idealcold_18_0= '#idealcold' ) ) | ( (lv_castleprod_19_0= '#castleprod' ) ) | ( (lv_domkill_20_0= '#domkill' ) ) | ( (lv_domunrest_21_0= '#domunrest' ) ) | ( (lv_startfort_22_0= '#startfort' ) ) | ( (lv_defaultfort_23_0= '#defaultfort' ) ) | ( (lv_farmfort_24_0= '#farmfort' ) ) | ( (lv_mountainfort_25_0= '#mountainfort' ) ) | ( (lv_forestfort_26_0= '#forestfort' ) ) | ( (lv_swampfort_27_0= '#swampfort' ) ) | ( (lv_uwfort_28_0= '#uwfort' ) ) | ( (lv_deepfort_29_0= '#deepfort' ) ) ) ;
    public final EObject ruleNationInst2() throws RecognitionException {
        EObject current = null;

        Token lv_era_0_0=null;
        Token lv_labcost_1_0=null;
        Token lv_templecost_2_0=null;
        Token lv_templepic_3_0=null;
        Token lv_startunitnbrs1_4_0=null;
        Token lv_startunitnbrs2_5_0=null;
        Token lv_hero1_6_0=null;
        Token lv_hero2_7_0=null;
        Token lv_hero3_8_0=null;
        Token lv_hero4_9_0=null;
        Token lv_hero5_10_0=null;
        Token lv_hero6_11_0=null;
        Token lv_multihero1_12_0=null;
        Token lv_multihero2_13_0=null;
        Token lv_defmult1_14_0=null;
        Token lv_defmult1b_15_0=null;
        Token lv_defmult2_16_0=null;
        Token lv_defmult2b_17_0=null;
        Token lv_idealcold_18_0=null;
        Token lv_castleprod_19_0=null;
        Token lv_domkill_20_0=null;
        Token lv_domunrest_21_0=null;
        Token lv_startfort_22_0=null;
        Token lv_defaultfort_23_0=null;
        Token lv_farmfort_24_0=null;
        Token lv_mountainfort_25_0=null;
        Token lv_forestfort_26_0=null;
        Token lv_swampfort_27_0=null;
        Token lv_uwfort_28_0=null;
        Token lv_deepfort_29_0=null;

         enterRule(); 
            
        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9988:28: ( ( ( (lv_era_0_0= '#era' ) ) | ( (lv_labcost_1_0= '#labcost' ) ) | ( (lv_templecost_2_0= '#templecost' ) ) | ( (lv_templepic_3_0= '#templepic' ) ) | ( (lv_startunitnbrs1_4_0= '#startunitnbrs1' ) ) | ( (lv_startunitnbrs2_5_0= '#startunitnbrs2' ) ) | ( (lv_hero1_6_0= '#hero1' ) ) | ( (lv_hero2_7_0= '#hero2' ) ) | ( (lv_hero3_8_0= '#hero3' ) ) | ( (lv_hero4_9_0= '#hero4' ) ) | ( (lv_hero5_10_0= '#hero5' ) ) | ( (lv_hero6_11_0= '#hero6' ) ) | ( (lv_multihero1_12_0= '#multihero1' ) ) | ( (lv_multihero2_13_0= '#multihero2' ) ) | ( (lv_defmult1_14_0= '#defmult1' ) ) | ( (lv_defmult1b_15_0= '#defmult1b' ) ) | ( (lv_defmult2_16_0= '#defmult2' ) ) | ( (lv_defmult2b_17_0= '#defmult2b' ) ) | ( (lv_idealcold_18_0= '#idealcold' ) ) | ( (lv_castleprod_19_0= '#castleprod' ) ) | ( (lv_domkill_20_0= '#domkill' ) ) | ( (lv_domunrest_21_0= '#domunrest' ) ) | ( (lv_startfort_22_0= '#startfort' ) ) | ( (lv_defaultfort_23_0= '#defaultfort' ) ) | ( (lv_farmfort_24_0= '#farmfort' ) ) | ( (lv_mountainfort_25_0= '#mountainfort' ) ) | ( (lv_forestfort_26_0= '#forestfort' ) ) | ( (lv_swampfort_27_0= '#swampfort' ) ) | ( (lv_uwfort_28_0= '#uwfort' ) ) | ( (lv_deepfort_29_0= '#deepfort' ) ) ) )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9989:1: ( ( (lv_era_0_0= '#era' ) ) | ( (lv_labcost_1_0= '#labcost' ) ) | ( (lv_templecost_2_0= '#templecost' ) ) | ( (lv_templepic_3_0= '#templepic' ) ) | ( (lv_startunitnbrs1_4_0= '#startunitnbrs1' ) ) | ( (lv_startunitnbrs2_5_0= '#startunitnbrs2' ) ) | ( (lv_hero1_6_0= '#hero1' ) ) | ( (lv_hero2_7_0= '#hero2' ) ) | ( (lv_hero3_8_0= '#hero3' ) ) | ( (lv_hero4_9_0= '#hero4' ) ) | ( (lv_hero5_10_0= '#hero5' ) ) | ( (lv_hero6_11_0= '#hero6' ) ) | ( (lv_multihero1_12_0= '#multihero1' ) ) | ( (lv_multihero2_13_0= '#multihero2' ) ) | ( (lv_defmult1_14_0= '#defmult1' ) ) | ( (lv_defmult1b_15_0= '#defmult1b' ) ) | ( (lv_defmult2_16_0= '#defmult2' ) ) | ( (lv_defmult2b_17_0= '#defmult2b' ) ) | ( (lv_idealcold_18_0= '#idealcold' ) ) | ( (lv_castleprod_19_0= '#castleprod' ) ) | ( (lv_domkill_20_0= '#domkill' ) ) | ( (lv_domunrest_21_0= '#domunrest' ) ) | ( (lv_startfort_22_0= '#startfort' ) ) | ( (lv_defaultfort_23_0= '#defaultfort' ) ) | ( (lv_farmfort_24_0= '#farmfort' ) ) | ( (lv_mountainfort_25_0= '#mountainfort' ) ) | ( (lv_forestfort_26_0= '#forestfort' ) ) | ( (lv_swampfort_27_0= '#swampfort' ) ) | ( (lv_uwfort_28_0= '#uwfort' ) ) | ( (lv_deepfort_29_0= '#deepfort' ) ) )
            {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9989:1: ( ( (lv_era_0_0= '#era' ) ) | ( (lv_labcost_1_0= '#labcost' ) ) | ( (lv_templecost_2_0= '#templecost' ) ) | ( (lv_templepic_3_0= '#templepic' ) ) | ( (lv_startunitnbrs1_4_0= '#startunitnbrs1' ) ) | ( (lv_startunitnbrs2_5_0= '#startunitnbrs2' ) ) | ( (lv_hero1_6_0= '#hero1' ) ) | ( (lv_hero2_7_0= '#hero2' ) ) | ( (lv_hero3_8_0= '#hero3' ) ) | ( (lv_hero4_9_0= '#hero4' ) ) | ( (lv_hero5_10_0= '#hero5' ) ) | ( (lv_hero6_11_0= '#hero6' ) ) | ( (lv_multihero1_12_0= '#multihero1' ) ) | ( (lv_multihero2_13_0= '#multihero2' ) ) | ( (lv_defmult1_14_0= '#defmult1' ) ) | ( (lv_defmult1b_15_0= '#defmult1b' ) ) | ( (lv_defmult2_16_0= '#defmult2' ) ) | ( (lv_defmult2b_17_0= '#defmult2b' ) ) | ( (lv_idealcold_18_0= '#idealcold' ) ) | ( (lv_castleprod_19_0= '#castleprod' ) ) | ( (lv_domkill_20_0= '#domkill' ) ) | ( (lv_domunrest_21_0= '#domunrest' ) ) | ( (lv_startfort_22_0= '#startfort' ) ) | ( (lv_defaultfort_23_0= '#defaultfort' ) ) | ( (lv_farmfort_24_0= '#farmfort' ) ) | ( (lv_mountainfort_25_0= '#mountainfort' ) ) | ( (lv_forestfort_26_0= '#forestfort' ) ) | ( (lv_swampfort_27_0= '#swampfort' ) ) | ( (lv_uwfort_28_0= '#uwfort' ) ) | ( (lv_deepfort_29_0= '#deepfort' ) ) )
            int alt119=30;
            switch ( input.LA(1) ) {
            case 312:
                {
                alt119=1;
                }
                break;
            case 313:
                {
                alt119=2;
                }
                break;
            case 314:
                {
                alt119=3;
                }
                break;
            case 315:
                {
                alt119=4;
                }
                break;
            case 316:
                {
                alt119=5;
                }
                break;
            case 317:
                {
                alt119=6;
                }
                break;
            case 318:
                {
                alt119=7;
                }
                break;
            case 319:
                {
                alt119=8;
                }
                break;
            case 320:
                {
                alt119=9;
                }
                break;
            case 321:
                {
                alt119=10;
                }
                break;
            case 322:
                {
                alt119=11;
                }
                break;
            case 323:
                {
                alt119=12;
                }
                break;
            case 324:
                {
                alt119=13;
                }
                break;
            case 325:
                {
                alt119=14;
                }
                break;
            case 326:
                {
                alt119=15;
                }
                break;
            case 327:
                {
                alt119=16;
                }
                break;
            case 328:
                {
                alt119=17;
                }
                break;
            case 329:
                {
                alt119=18;
                }
                break;
            case 330:
                {
                alt119=19;
                }
                break;
            case 331:
                {
                alt119=20;
                }
                break;
            case 332:
                {
                alt119=21;
                }
                break;
            case 333:
                {
                alt119=22;
                }
                break;
            case 334:
                {
                alt119=23;
                }
                break;
            case 335:
                {
                alt119=24;
                }
                break;
            case 336:
                {
                alt119=25;
                }
                break;
            case 337:
                {
                alt119=26;
                }
                break;
            case 338:
                {
                alt119=27;
                }
                break;
            case 339:
                {
                alt119=28;
                }
                break;
            case 340:
                {
                alt119=29;
                }
                break;
            case 341:
                {
                alt119=30;
                }
                break;
            default:
                NoViableAltException nvae =
                    new NoViableAltException("", 119, 0, input);

                throw nvae;
            }

            switch (alt119) {
                case 1 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9989:2: ( (lv_era_0_0= '#era' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9989:2: ( (lv_era_0_0= '#era' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9990:1: (lv_era_0_0= '#era' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9990:1: (lv_era_0_0= '#era' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:9991:3: lv_era_0_0= '#era'
                    {
                    lv_era_0_0=(Token)match(input,312,FOLLOW_312_in_ruleNationInst224274); 

                            newLeafNode(lv_era_0_0, grammarAccess.getNationInst2Access().getEraEraKeyword_0_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getNationInst2Rule());
                    	        }
                           		setWithLastConsumed(current, "era", true, "#era");
                    	    

                    }


                    }


                    }
                    break;
                case 2 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10005:6: ( (lv_labcost_1_0= '#labcost' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10005:6: ( (lv_labcost_1_0= '#labcost' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10006:1: (lv_labcost_1_0= '#labcost' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10006:1: (lv_labcost_1_0= '#labcost' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10007:3: lv_labcost_1_0= '#labcost'
                    {
                    lv_labcost_1_0=(Token)match(input,313,FOLLOW_313_in_ruleNationInst224311); 

                            newLeafNode(lv_labcost_1_0, grammarAccess.getNationInst2Access().getLabcostLabcostKeyword_1_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getNationInst2Rule());
                    	        }
                           		setWithLastConsumed(current, "labcost", true, "#labcost");
                    	    

                    }


                    }


                    }
                    break;
                case 3 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10021:6: ( (lv_templecost_2_0= '#templecost' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10021:6: ( (lv_templecost_2_0= '#templecost' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10022:1: (lv_templecost_2_0= '#templecost' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10022:1: (lv_templecost_2_0= '#templecost' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10023:3: lv_templecost_2_0= '#templecost'
                    {
                    lv_templecost_2_0=(Token)match(input,314,FOLLOW_314_in_ruleNationInst224348); 

                            newLeafNode(lv_templecost_2_0, grammarAccess.getNationInst2Access().getTemplecostTemplecostKeyword_2_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getNationInst2Rule());
                    	        }
                           		setWithLastConsumed(current, "templecost", true, "#templecost");
                    	    

                    }


                    }


                    }
                    break;
                case 4 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10037:6: ( (lv_templepic_3_0= '#templepic' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10037:6: ( (lv_templepic_3_0= '#templepic' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10038:1: (lv_templepic_3_0= '#templepic' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10038:1: (lv_templepic_3_0= '#templepic' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10039:3: lv_templepic_3_0= '#templepic'
                    {
                    lv_templepic_3_0=(Token)match(input,315,FOLLOW_315_in_ruleNationInst224385); 

                            newLeafNode(lv_templepic_3_0, grammarAccess.getNationInst2Access().getTemplepicTemplepicKeyword_3_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getNationInst2Rule());
                    	        }
                           		setWithLastConsumed(current, "templepic", true, "#templepic");
                    	    

                    }


                    }


                    }
                    break;
                case 5 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10053:6: ( (lv_startunitnbrs1_4_0= '#startunitnbrs1' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10053:6: ( (lv_startunitnbrs1_4_0= '#startunitnbrs1' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10054:1: (lv_startunitnbrs1_4_0= '#startunitnbrs1' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10054:1: (lv_startunitnbrs1_4_0= '#startunitnbrs1' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10055:3: lv_startunitnbrs1_4_0= '#startunitnbrs1'
                    {
                    lv_startunitnbrs1_4_0=(Token)match(input,316,FOLLOW_316_in_ruleNationInst224422); 

                            newLeafNode(lv_startunitnbrs1_4_0, grammarAccess.getNationInst2Access().getStartunitnbrs1Startunitnbrs1Keyword_4_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getNationInst2Rule());
                    	        }
                           		setWithLastConsumed(current, "startunitnbrs1", true, "#startunitnbrs1");
                    	    

                    }


                    }


                    }
                    break;
                case 6 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10069:6: ( (lv_startunitnbrs2_5_0= '#startunitnbrs2' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10069:6: ( (lv_startunitnbrs2_5_0= '#startunitnbrs2' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10070:1: (lv_startunitnbrs2_5_0= '#startunitnbrs2' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10070:1: (lv_startunitnbrs2_5_0= '#startunitnbrs2' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10071:3: lv_startunitnbrs2_5_0= '#startunitnbrs2'
                    {
                    lv_startunitnbrs2_5_0=(Token)match(input,317,FOLLOW_317_in_ruleNationInst224459); 

                            newLeafNode(lv_startunitnbrs2_5_0, grammarAccess.getNationInst2Access().getStartunitnbrs2Startunitnbrs2Keyword_5_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getNationInst2Rule());
                    	        }
                           		setWithLastConsumed(current, "startunitnbrs2", true, "#startunitnbrs2");
                    	    

                    }


                    }


                    }
                    break;
                case 7 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10085:6: ( (lv_hero1_6_0= '#hero1' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10085:6: ( (lv_hero1_6_0= '#hero1' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10086:1: (lv_hero1_6_0= '#hero1' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10086:1: (lv_hero1_6_0= '#hero1' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10087:3: lv_hero1_6_0= '#hero1'
                    {
                    lv_hero1_6_0=(Token)match(input,318,FOLLOW_318_in_ruleNationInst224496); 

                            newLeafNode(lv_hero1_6_0, grammarAccess.getNationInst2Access().getHero1Hero1Keyword_6_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getNationInst2Rule());
                    	        }
                           		setWithLastConsumed(current, "hero1", true, "#hero1");
                    	    

                    }


                    }


                    }
                    break;
                case 8 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10101:6: ( (lv_hero2_7_0= '#hero2' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10101:6: ( (lv_hero2_7_0= '#hero2' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10102:1: (lv_hero2_7_0= '#hero2' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10102:1: (lv_hero2_7_0= '#hero2' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10103:3: lv_hero2_7_0= '#hero2'
                    {
                    lv_hero2_7_0=(Token)match(input,319,FOLLOW_319_in_ruleNationInst224533); 

                            newLeafNode(lv_hero2_7_0, grammarAccess.getNationInst2Access().getHero2Hero2Keyword_7_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getNationInst2Rule());
                    	        }
                           		setWithLastConsumed(current, "hero2", true, "#hero2");
                    	    

                    }


                    }


                    }
                    break;
                case 9 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10117:6: ( (lv_hero3_8_0= '#hero3' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10117:6: ( (lv_hero3_8_0= '#hero3' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10118:1: (lv_hero3_8_0= '#hero3' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10118:1: (lv_hero3_8_0= '#hero3' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10119:3: lv_hero3_8_0= '#hero3'
                    {
                    lv_hero3_8_0=(Token)match(input,320,FOLLOW_320_in_ruleNationInst224570); 

                            newLeafNode(lv_hero3_8_0, grammarAccess.getNationInst2Access().getHero3Hero3Keyword_8_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getNationInst2Rule());
                    	        }
                           		setWithLastConsumed(current, "hero3", true, "#hero3");
                    	    

                    }


                    }


                    }
                    break;
                case 10 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10133:6: ( (lv_hero4_9_0= '#hero4' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10133:6: ( (lv_hero4_9_0= '#hero4' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10134:1: (lv_hero4_9_0= '#hero4' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10134:1: (lv_hero4_9_0= '#hero4' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10135:3: lv_hero4_9_0= '#hero4'
                    {
                    lv_hero4_9_0=(Token)match(input,321,FOLLOW_321_in_ruleNationInst224607); 

                            newLeafNode(lv_hero4_9_0, grammarAccess.getNationInst2Access().getHero4Hero4Keyword_9_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getNationInst2Rule());
                    	        }
                           		setWithLastConsumed(current, "hero4", true, "#hero4");
                    	    

                    }


                    }


                    }
                    break;
                case 11 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10149:6: ( (lv_hero5_10_0= '#hero5' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10149:6: ( (lv_hero5_10_0= '#hero5' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10150:1: (lv_hero5_10_0= '#hero5' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10150:1: (lv_hero5_10_0= '#hero5' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10151:3: lv_hero5_10_0= '#hero5'
                    {
                    lv_hero5_10_0=(Token)match(input,322,FOLLOW_322_in_ruleNationInst224644); 

                            newLeafNode(lv_hero5_10_0, grammarAccess.getNationInst2Access().getHero5Hero5Keyword_10_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getNationInst2Rule());
                    	        }
                           		setWithLastConsumed(current, "hero5", true, "#hero5");
                    	    

                    }


                    }


                    }
                    break;
                case 12 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10165:6: ( (lv_hero6_11_0= '#hero6' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10165:6: ( (lv_hero6_11_0= '#hero6' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10166:1: (lv_hero6_11_0= '#hero6' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10166:1: (lv_hero6_11_0= '#hero6' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10167:3: lv_hero6_11_0= '#hero6'
                    {
                    lv_hero6_11_0=(Token)match(input,323,FOLLOW_323_in_ruleNationInst224681); 

                            newLeafNode(lv_hero6_11_0, grammarAccess.getNationInst2Access().getHero6Hero6Keyword_11_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getNationInst2Rule());
                    	        }
                           		setWithLastConsumed(current, "hero6", true, "#hero6");
                    	    

                    }


                    }


                    }
                    break;
                case 13 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10181:6: ( (lv_multihero1_12_0= '#multihero1' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10181:6: ( (lv_multihero1_12_0= '#multihero1' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10182:1: (lv_multihero1_12_0= '#multihero1' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10182:1: (lv_multihero1_12_0= '#multihero1' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10183:3: lv_multihero1_12_0= '#multihero1'
                    {
                    lv_multihero1_12_0=(Token)match(input,324,FOLLOW_324_in_ruleNationInst224718); 

                            newLeafNode(lv_multihero1_12_0, grammarAccess.getNationInst2Access().getMultihero1Multihero1Keyword_12_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getNationInst2Rule());
                    	        }
                           		setWithLastConsumed(current, "multihero1", true, "#multihero1");
                    	    

                    }


                    }


                    }
                    break;
                case 14 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10197:6: ( (lv_multihero2_13_0= '#multihero2' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10197:6: ( (lv_multihero2_13_0= '#multihero2' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10198:1: (lv_multihero2_13_0= '#multihero2' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10198:1: (lv_multihero2_13_0= '#multihero2' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10199:3: lv_multihero2_13_0= '#multihero2'
                    {
                    lv_multihero2_13_0=(Token)match(input,325,FOLLOW_325_in_ruleNationInst224755); 

                            newLeafNode(lv_multihero2_13_0, grammarAccess.getNationInst2Access().getMultihero2Multihero2Keyword_13_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getNationInst2Rule());
                    	        }
                           		setWithLastConsumed(current, "multihero2", true, "#multihero2");
                    	    

                    }


                    }


                    }
                    break;
                case 15 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10213:6: ( (lv_defmult1_14_0= '#defmult1' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10213:6: ( (lv_defmult1_14_0= '#defmult1' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10214:1: (lv_defmult1_14_0= '#defmult1' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10214:1: (lv_defmult1_14_0= '#defmult1' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10215:3: lv_defmult1_14_0= '#defmult1'
                    {
                    lv_defmult1_14_0=(Token)match(input,326,FOLLOW_326_in_ruleNationInst224792); 

                            newLeafNode(lv_defmult1_14_0, grammarAccess.getNationInst2Access().getDefmult1Defmult1Keyword_14_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getNationInst2Rule());
                    	        }
                           		setWithLastConsumed(current, "defmult1", true, "#defmult1");
                    	    

                    }


                    }


                    }
                    break;
                case 16 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10229:6: ( (lv_defmult1b_15_0= '#defmult1b' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10229:6: ( (lv_defmult1b_15_0= '#defmult1b' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10230:1: (lv_defmult1b_15_0= '#defmult1b' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10230:1: (lv_defmult1b_15_0= '#defmult1b' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10231:3: lv_defmult1b_15_0= '#defmult1b'
                    {
                    lv_defmult1b_15_0=(Token)match(input,327,FOLLOW_327_in_ruleNationInst224829); 

                            newLeafNode(lv_defmult1b_15_0, grammarAccess.getNationInst2Access().getDefmult1bDefmult1bKeyword_15_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getNationInst2Rule());
                    	        }
                           		setWithLastConsumed(current, "defmult1b", true, "#defmult1b");
                    	    

                    }


                    }


                    }
                    break;
                case 17 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10245:6: ( (lv_defmult2_16_0= '#defmult2' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10245:6: ( (lv_defmult2_16_0= '#defmult2' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10246:1: (lv_defmult2_16_0= '#defmult2' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10246:1: (lv_defmult2_16_0= '#defmult2' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10247:3: lv_defmult2_16_0= '#defmult2'
                    {
                    lv_defmult2_16_0=(Token)match(input,328,FOLLOW_328_in_ruleNationInst224866); 

                            newLeafNode(lv_defmult2_16_0, grammarAccess.getNationInst2Access().getDefmult2Defmult2Keyword_16_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getNationInst2Rule());
                    	        }
                           		setWithLastConsumed(current, "defmult2", true, "#defmult2");
                    	    

                    }


                    }


                    }
                    break;
                case 18 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10261:6: ( (lv_defmult2b_17_0= '#defmult2b' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10261:6: ( (lv_defmult2b_17_0= '#defmult2b' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10262:1: (lv_defmult2b_17_0= '#defmult2b' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10262:1: (lv_defmult2b_17_0= '#defmult2b' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10263:3: lv_defmult2b_17_0= '#defmult2b'
                    {
                    lv_defmult2b_17_0=(Token)match(input,329,FOLLOW_329_in_ruleNationInst224903); 

                            newLeafNode(lv_defmult2b_17_0, grammarAccess.getNationInst2Access().getDefmult2bDefmult2bKeyword_17_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getNationInst2Rule());
                    	        }
                           		setWithLastConsumed(current, "defmult2b", true, "#defmult2b");
                    	    

                    }


                    }


                    }
                    break;
                case 19 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10277:6: ( (lv_idealcold_18_0= '#idealcold' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10277:6: ( (lv_idealcold_18_0= '#idealcold' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10278:1: (lv_idealcold_18_0= '#idealcold' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10278:1: (lv_idealcold_18_0= '#idealcold' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10279:3: lv_idealcold_18_0= '#idealcold'
                    {
                    lv_idealcold_18_0=(Token)match(input,330,FOLLOW_330_in_ruleNationInst224940); 

                            newLeafNode(lv_idealcold_18_0, grammarAccess.getNationInst2Access().getIdealcoldIdealcoldKeyword_18_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getNationInst2Rule());
                    	        }
                           		setWithLastConsumed(current, "idealcold", true, "#idealcold");
                    	    

                    }


                    }


                    }
                    break;
                case 20 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10293:6: ( (lv_castleprod_19_0= '#castleprod' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10293:6: ( (lv_castleprod_19_0= '#castleprod' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10294:1: (lv_castleprod_19_0= '#castleprod' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10294:1: (lv_castleprod_19_0= '#castleprod' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10295:3: lv_castleprod_19_0= '#castleprod'
                    {
                    lv_castleprod_19_0=(Token)match(input,331,FOLLOW_331_in_ruleNationInst224977); 

                            newLeafNode(lv_castleprod_19_0, grammarAccess.getNationInst2Access().getCastleprodCastleprodKeyword_19_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getNationInst2Rule());
                    	        }
                           		setWithLastConsumed(current, "castleprod", true, "#castleprod");
                    	    

                    }


                    }


                    }
                    break;
                case 21 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10309:6: ( (lv_domkill_20_0= '#domkill' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10309:6: ( (lv_domkill_20_0= '#domkill' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10310:1: (lv_domkill_20_0= '#domkill' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10310:1: (lv_domkill_20_0= '#domkill' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10311:3: lv_domkill_20_0= '#domkill'
                    {
                    lv_domkill_20_0=(Token)match(input,332,FOLLOW_332_in_ruleNationInst225014); 

                            newLeafNode(lv_domkill_20_0, grammarAccess.getNationInst2Access().getDomkillDomkillKeyword_20_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getNationInst2Rule());
                    	        }
                           		setWithLastConsumed(current, "domkill", true, "#domkill");
                    	    

                    }


                    }


                    }
                    break;
                case 22 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10325:6: ( (lv_domunrest_21_0= '#domunrest' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10325:6: ( (lv_domunrest_21_0= '#domunrest' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10326:1: (lv_domunrest_21_0= '#domunrest' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10326:1: (lv_domunrest_21_0= '#domunrest' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10327:3: lv_domunrest_21_0= '#domunrest'
                    {
                    lv_domunrest_21_0=(Token)match(input,333,FOLLOW_333_in_ruleNationInst225051); 

                            newLeafNode(lv_domunrest_21_0, grammarAccess.getNationInst2Access().getDomunrestDomunrestKeyword_21_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getNationInst2Rule());
                    	        }
                           		setWithLastConsumed(current, "domunrest", true, "#domunrest");
                    	    

                    }


                    }


                    }
                    break;
                case 23 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10341:6: ( (lv_startfort_22_0= '#startfort' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10341:6: ( (lv_startfort_22_0= '#startfort' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10342:1: (lv_startfort_22_0= '#startfort' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10342:1: (lv_startfort_22_0= '#startfort' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10343:3: lv_startfort_22_0= '#startfort'
                    {
                    lv_startfort_22_0=(Token)match(input,334,FOLLOW_334_in_ruleNationInst225088); 

                            newLeafNode(lv_startfort_22_0, grammarAccess.getNationInst2Access().getStartfortStartfortKeyword_22_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getNationInst2Rule());
                    	        }
                           		setWithLastConsumed(current, "startfort", true, "#startfort");
                    	    

                    }


                    }


                    }
                    break;
                case 24 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10357:6: ( (lv_defaultfort_23_0= '#defaultfort' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10357:6: ( (lv_defaultfort_23_0= '#defaultfort' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10358:1: (lv_defaultfort_23_0= '#defaultfort' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10358:1: (lv_defaultfort_23_0= '#defaultfort' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10359:3: lv_defaultfort_23_0= '#defaultfort'
                    {
                    lv_defaultfort_23_0=(Token)match(input,335,FOLLOW_335_in_ruleNationInst225125); 

                            newLeafNode(lv_defaultfort_23_0, grammarAccess.getNationInst2Access().getDefaultfortDefaultfortKeyword_23_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getNationInst2Rule());
                    	        }
                           		setWithLastConsumed(current, "defaultfort", true, "#defaultfort");
                    	    

                    }


                    }


                    }
                    break;
                case 25 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10373:6: ( (lv_farmfort_24_0= '#farmfort' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10373:6: ( (lv_farmfort_24_0= '#farmfort' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10374:1: (lv_farmfort_24_0= '#farmfort' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10374:1: (lv_farmfort_24_0= '#farmfort' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10375:3: lv_farmfort_24_0= '#farmfort'
                    {
                    lv_farmfort_24_0=(Token)match(input,336,FOLLOW_336_in_ruleNationInst225162); 

                            newLeafNode(lv_farmfort_24_0, grammarAccess.getNationInst2Access().getFarmfortFarmfortKeyword_24_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getNationInst2Rule());
                    	        }
                           		setWithLastConsumed(current, "farmfort", true, "#farmfort");
                    	    

                    }


                    }


                    }
                    break;
                case 26 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10389:6: ( (lv_mountainfort_25_0= '#mountainfort' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10389:6: ( (lv_mountainfort_25_0= '#mountainfort' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10390:1: (lv_mountainfort_25_0= '#mountainfort' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10390:1: (lv_mountainfort_25_0= '#mountainfort' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10391:3: lv_mountainfort_25_0= '#mountainfort'
                    {
                    lv_mountainfort_25_0=(Token)match(input,337,FOLLOW_337_in_ruleNationInst225199); 

                            newLeafNode(lv_mountainfort_25_0, grammarAccess.getNationInst2Access().getMountainfortMountainfortKeyword_25_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getNationInst2Rule());
                    	        }
                           		setWithLastConsumed(current, "mountainfort", true, "#mountainfort");
                    	    

                    }


                    }


                    }
                    break;
                case 27 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10405:6: ( (lv_forestfort_26_0= '#forestfort' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10405:6: ( (lv_forestfort_26_0= '#forestfort' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10406:1: (lv_forestfort_26_0= '#forestfort' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10406:1: (lv_forestfort_26_0= '#forestfort' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10407:3: lv_forestfort_26_0= '#forestfort'
                    {
                    lv_forestfort_26_0=(Token)match(input,338,FOLLOW_338_in_ruleNationInst225236); 

                            newLeafNode(lv_forestfort_26_0, grammarAccess.getNationInst2Access().getForestfortForestfortKeyword_26_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getNationInst2Rule());
                    	        }
                           		setWithLastConsumed(current, "forestfort", true, "#forestfort");
                    	    

                    }


                    }


                    }
                    break;
                case 28 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10421:6: ( (lv_swampfort_27_0= '#swampfort' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10421:6: ( (lv_swampfort_27_0= '#swampfort' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10422:1: (lv_swampfort_27_0= '#swampfort' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10422:1: (lv_swampfort_27_0= '#swampfort' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10423:3: lv_swampfort_27_0= '#swampfort'
                    {
                    lv_swampfort_27_0=(Token)match(input,339,FOLLOW_339_in_ruleNationInst225273); 

                            newLeafNode(lv_swampfort_27_0, grammarAccess.getNationInst2Access().getSwampfortSwampfortKeyword_27_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getNationInst2Rule());
                    	        }
                           		setWithLastConsumed(current, "swampfort", true, "#swampfort");
                    	    

                    }


                    }


                    }
                    break;
                case 29 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10437:6: ( (lv_uwfort_28_0= '#uwfort' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10437:6: ( (lv_uwfort_28_0= '#uwfort' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10438:1: (lv_uwfort_28_0= '#uwfort' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10438:1: (lv_uwfort_28_0= '#uwfort' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10439:3: lv_uwfort_28_0= '#uwfort'
                    {
                    lv_uwfort_28_0=(Token)match(input,340,FOLLOW_340_in_ruleNationInst225310); 

                            newLeafNode(lv_uwfort_28_0, grammarAccess.getNationInst2Access().getUwfortUwfortKeyword_28_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getNationInst2Rule());
                    	        }
                           		setWithLastConsumed(current, "uwfort", true, "#uwfort");
                    	    

                    }


                    }


                    }
                    break;
                case 30 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10453:6: ( (lv_deepfort_29_0= '#deepfort' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10453:6: ( (lv_deepfort_29_0= '#deepfort' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10454:1: (lv_deepfort_29_0= '#deepfort' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10454:1: (lv_deepfort_29_0= '#deepfort' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10455:3: lv_deepfort_29_0= '#deepfort'
                    {
                    lv_deepfort_29_0=(Token)match(input,341,FOLLOW_341_in_ruleNationInst225347); 

                            newLeafNode(lv_deepfort_29_0, grammarAccess.getNationInst2Access().getDeepfortDeepfortKeyword_29_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getNationInst2Rule());
                    	        }
                           		setWithLastConsumed(current, "deepfort", true, "#deepfort");
                    	    

                    }


                    }


                    }
                    break;

            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleNationInst2"


    // $ANTLR start "entryRuleNationInst3"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10476:1: entryRuleNationInst3 returns [EObject current=null] : iv_ruleNationInst3= ruleNationInst3 EOF ;
    public final EObject entryRuleNationInst3() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleNationInst3 = null;


        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10477:2: (iv_ruleNationInst3= ruleNationInst3 EOF )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10478:2: iv_ruleNationInst3= ruleNationInst3 EOF
            {
             newCompositeNode(grammarAccess.getNationInst3Rule()); 
            pushFollow(FOLLOW_ruleNationInst3_in_entryRuleNationInst325396);
            iv_ruleNationInst3=ruleNationInst3();

            state._fsp--;

             current =iv_ruleNationInst3; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleNationInst325406); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleNationInst3"


    // $ANTLR start "ruleNationInst3"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10485:1: ruleNationInst3 returns [EObject current=null] : ( ( (lv_clearnation_0_0= '#clearnation' ) ) | ( (lv_clearrec_1_0= '#clearrec' ) ) | ( (lv_clearsites_2_0= '#clearsites' ) ) | ( (lv_uwnation_3_0= '#uwnation' ) ) | ( (lv_bloodnation_4_0= '#bloodnation' ) ) | ( (lv_nopreach_5_0= '#nopreach' ) ) | ( (lv_dyingdom_6_0= '#dyingdom' ) ) | ( (lv_sacrificedom_7_0= '#sacrificedom' ) ) | ( (lv_nodeathsupply_8_0= '#nodeathsupply' ) ) | ( (lv_autoundead_9_0= '#autoundead' ) ) | ( (lv_zombiereanim_10_0= '#zombiereanim' ) ) | ( (lv_horsereanim_11_0= '#horsereanim' ) ) | ( (lv_wightreanim_12_0= '#wightreanim' ) ) | ( (lv_manikinreanim_13_0= '#manikinreanim' ) ) | ( (lv_tombwyrmreanim_14_0= '#tombwyrmreanim' ) ) ) ;
    public final EObject ruleNationInst3() throws RecognitionException {
        EObject current = null;

        Token lv_clearnation_0_0=null;
        Token lv_clearrec_1_0=null;
        Token lv_clearsites_2_0=null;
        Token lv_uwnation_3_0=null;
        Token lv_bloodnation_4_0=null;
        Token lv_nopreach_5_0=null;
        Token lv_dyingdom_6_0=null;
        Token lv_sacrificedom_7_0=null;
        Token lv_nodeathsupply_8_0=null;
        Token lv_autoundead_9_0=null;
        Token lv_zombiereanim_10_0=null;
        Token lv_horsereanim_11_0=null;
        Token lv_wightreanim_12_0=null;
        Token lv_manikinreanim_13_0=null;
        Token lv_tombwyrmreanim_14_0=null;

         enterRule(); 
            
        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10488:28: ( ( ( (lv_clearnation_0_0= '#clearnation' ) ) | ( (lv_clearrec_1_0= '#clearrec' ) ) | ( (lv_clearsites_2_0= '#clearsites' ) ) | ( (lv_uwnation_3_0= '#uwnation' ) ) | ( (lv_bloodnation_4_0= '#bloodnation' ) ) | ( (lv_nopreach_5_0= '#nopreach' ) ) | ( (lv_dyingdom_6_0= '#dyingdom' ) ) | ( (lv_sacrificedom_7_0= '#sacrificedom' ) ) | ( (lv_nodeathsupply_8_0= '#nodeathsupply' ) ) | ( (lv_autoundead_9_0= '#autoundead' ) ) | ( (lv_zombiereanim_10_0= '#zombiereanim' ) ) | ( (lv_horsereanim_11_0= '#horsereanim' ) ) | ( (lv_wightreanim_12_0= '#wightreanim' ) ) | ( (lv_manikinreanim_13_0= '#manikinreanim' ) ) | ( (lv_tombwyrmreanim_14_0= '#tombwyrmreanim' ) ) ) )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10489:1: ( ( (lv_clearnation_0_0= '#clearnation' ) ) | ( (lv_clearrec_1_0= '#clearrec' ) ) | ( (lv_clearsites_2_0= '#clearsites' ) ) | ( (lv_uwnation_3_0= '#uwnation' ) ) | ( (lv_bloodnation_4_0= '#bloodnation' ) ) | ( (lv_nopreach_5_0= '#nopreach' ) ) | ( (lv_dyingdom_6_0= '#dyingdom' ) ) | ( (lv_sacrificedom_7_0= '#sacrificedom' ) ) | ( (lv_nodeathsupply_8_0= '#nodeathsupply' ) ) | ( (lv_autoundead_9_0= '#autoundead' ) ) | ( (lv_zombiereanim_10_0= '#zombiereanim' ) ) | ( (lv_horsereanim_11_0= '#horsereanim' ) ) | ( (lv_wightreanim_12_0= '#wightreanim' ) ) | ( (lv_manikinreanim_13_0= '#manikinreanim' ) ) | ( (lv_tombwyrmreanim_14_0= '#tombwyrmreanim' ) ) )
            {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10489:1: ( ( (lv_clearnation_0_0= '#clearnation' ) ) | ( (lv_clearrec_1_0= '#clearrec' ) ) | ( (lv_clearsites_2_0= '#clearsites' ) ) | ( (lv_uwnation_3_0= '#uwnation' ) ) | ( (lv_bloodnation_4_0= '#bloodnation' ) ) | ( (lv_nopreach_5_0= '#nopreach' ) ) | ( (lv_dyingdom_6_0= '#dyingdom' ) ) | ( (lv_sacrificedom_7_0= '#sacrificedom' ) ) | ( (lv_nodeathsupply_8_0= '#nodeathsupply' ) ) | ( (lv_autoundead_9_0= '#autoundead' ) ) | ( (lv_zombiereanim_10_0= '#zombiereanim' ) ) | ( (lv_horsereanim_11_0= '#horsereanim' ) ) | ( (lv_wightreanim_12_0= '#wightreanim' ) ) | ( (lv_manikinreanim_13_0= '#manikinreanim' ) ) | ( (lv_tombwyrmreanim_14_0= '#tombwyrmreanim' ) ) )
            int alt120=15;
            switch ( input.LA(1) ) {
            case 342:
                {
                alt120=1;
                }
                break;
            case 343:
                {
                alt120=2;
                }
                break;
            case 344:
                {
                alt120=3;
                }
                break;
            case 345:
                {
                alt120=4;
                }
                break;
            case 346:
                {
                alt120=5;
                }
                break;
            case 347:
                {
                alt120=6;
                }
                break;
            case 348:
                {
                alt120=7;
                }
                break;
            case 349:
                {
                alt120=8;
                }
                break;
            case 350:
                {
                alt120=9;
                }
                break;
            case 351:
                {
                alt120=10;
                }
                break;
            case 352:
                {
                alt120=11;
                }
                break;
            case 353:
                {
                alt120=12;
                }
                break;
            case 354:
                {
                alt120=13;
                }
                break;
            case 355:
                {
                alt120=14;
                }
                break;
            case 356:
                {
                alt120=15;
                }
                break;
            default:
                NoViableAltException nvae =
                    new NoViableAltException("", 120, 0, input);

                throw nvae;
            }

            switch (alt120) {
                case 1 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10489:2: ( (lv_clearnation_0_0= '#clearnation' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10489:2: ( (lv_clearnation_0_0= '#clearnation' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10490:1: (lv_clearnation_0_0= '#clearnation' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10490:1: (lv_clearnation_0_0= '#clearnation' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10491:3: lv_clearnation_0_0= '#clearnation'
                    {
                    lv_clearnation_0_0=(Token)match(input,342,FOLLOW_342_in_ruleNationInst325449); 

                            newLeafNode(lv_clearnation_0_0, grammarAccess.getNationInst3Access().getClearnationClearnationKeyword_0_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getNationInst3Rule());
                    	        }
                           		setWithLastConsumed(current, "clearnation", true, "#clearnation");
                    	    

                    }


                    }


                    }
                    break;
                case 2 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10505:6: ( (lv_clearrec_1_0= '#clearrec' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10505:6: ( (lv_clearrec_1_0= '#clearrec' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10506:1: (lv_clearrec_1_0= '#clearrec' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10506:1: (lv_clearrec_1_0= '#clearrec' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10507:3: lv_clearrec_1_0= '#clearrec'
                    {
                    lv_clearrec_1_0=(Token)match(input,343,FOLLOW_343_in_ruleNationInst325486); 

                            newLeafNode(lv_clearrec_1_0, grammarAccess.getNationInst3Access().getClearrecClearrecKeyword_1_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getNationInst3Rule());
                    	        }
                           		setWithLastConsumed(current, "clearrec", true, "#clearrec");
                    	    

                    }


                    }


                    }
                    break;
                case 3 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10521:6: ( (lv_clearsites_2_0= '#clearsites' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10521:6: ( (lv_clearsites_2_0= '#clearsites' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10522:1: (lv_clearsites_2_0= '#clearsites' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10522:1: (lv_clearsites_2_0= '#clearsites' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10523:3: lv_clearsites_2_0= '#clearsites'
                    {
                    lv_clearsites_2_0=(Token)match(input,344,FOLLOW_344_in_ruleNationInst325523); 

                            newLeafNode(lv_clearsites_2_0, grammarAccess.getNationInst3Access().getClearsitesClearsitesKeyword_2_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getNationInst3Rule());
                    	        }
                           		setWithLastConsumed(current, "clearsites", true, "#clearsites");
                    	    

                    }


                    }


                    }
                    break;
                case 4 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10537:6: ( (lv_uwnation_3_0= '#uwnation' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10537:6: ( (lv_uwnation_3_0= '#uwnation' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10538:1: (lv_uwnation_3_0= '#uwnation' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10538:1: (lv_uwnation_3_0= '#uwnation' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10539:3: lv_uwnation_3_0= '#uwnation'
                    {
                    lv_uwnation_3_0=(Token)match(input,345,FOLLOW_345_in_ruleNationInst325560); 

                            newLeafNode(lv_uwnation_3_0, grammarAccess.getNationInst3Access().getUwnationUwnationKeyword_3_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getNationInst3Rule());
                    	        }
                           		setWithLastConsumed(current, "uwnation", true, "#uwnation");
                    	    

                    }


                    }


                    }
                    break;
                case 5 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10553:6: ( (lv_bloodnation_4_0= '#bloodnation' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10553:6: ( (lv_bloodnation_4_0= '#bloodnation' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10554:1: (lv_bloodnation_4_0= '#bloodnation' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10554:1: (lv_bloodnation_4_0= '#bloodnation' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10555:3: lv_bloodnation_4_0= '#bloodnation'
                    {
                    lv_bloodnation_4_0=(Token)match(input,346,FOLLOW_346_in_ruleNationInst325597); 

                            newLeafNode(lv_bloodnation_4_0, grammarAccess.getNationInst3Access().getBloodnationBloodnationKeyword_4_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getNationInst3Rule());
                    	        }
                           		setWithLastConsumed(current, "bloodnation", true, "#bloodnation");
                    	    

                    }


                    }


                    }
                    break;
                case 6 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10569:6: ( (lv_nopreach_5_0= '#nopreach' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10569:6: ( (lv_nopreach_5_0= '#nopreach' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10570:1: (lv_nopreach_5_0= '#nopreach' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10570:1: (lv_nopreach_5_0= '#nopreach' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10571:3: lv_nopreach_5_0= '#nopreach'
                    {
                    lv_nopreach_5_0=(Token)match(input,347,FOLLOW_347_in_ruleNationInst325634); 

                            newLeafNode(lv_nopreach_5_0, grammarAccess.getNationInst3Access().getNopreachNopreachKeyword_5_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getNationInst3Rule());
                    	        }
                           		setWithLastConsumed(current, "nopreach", true, "#nopreach");
                    	    

                    }


                    }


                    }
                    break;
                case 7 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10585:6: ( (lv_dyingdom_6_0= '#dyingdom' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10585:6: ( (lv_dyingdom_6_0= '#dyingdom' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10586:1: (lv_dyingdom_6_0= '#dyingdom' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10586:1: (lv_dyingdom_6_0= '#dyingdom' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10587:3: lv_dyingdom_6_0= '#dyingdom'
                    {
                    lv_dyingdom_6_0=(Token)match(input,348,FOLLOW_348_in_ruleNationInst325671); 

                            newLeafNode(lv_dyingdom_6_0, grammarAccess.getNationInst3Access().getDyingdomDyingdomKeyword_6_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getNationInst3Rule());
                    	        }
                           		setWithLastConsumed(current, "dyingdom", true, "#dyingdom");
                    	    

                    }


                    }


                    }
                    break;
                case 8 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10601:6: ( (lv_sacrificedom_7_0= '#sacrificedom' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10601:6: ( (lv_sacrificedom_7_0= '#sacrificedom' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10602:1: (lv_sacrificedom_7_0= '#sacrificedom' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10602:1: (lv_sacrificedom_7_0= '#sacrificedom' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10603:3: lv_sacrificedom_7_0= '#sacrificedom'
                    {
                    lv_sacrificedom_7_0=(Token)match(input,349,FOLLOW_349_in_ruleNationInst325708); 

                            newLeafNode(lv_sacrificedom_7_0, grammarAccess.getNationInst3Access().getSacrificedomSacrificedomKeyword_7_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getNationInst3Rule());
                    	        }
                           		setWithLastConsumed(current, "sacrificedom", true, "#sacrificedom");
                    	    

                    }


                    }


                    }
                    break;
                case 9 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10617:6: ( (lv_nodeathsupply_8_0= '#nodeathsupply' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10617:6: ( (lv_nodeathsupply_8_0= '#nodeathsupply' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10618:1: (lv_nodeathsupply_8_0= '#nodeathsupply' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10618:1: (lv_nodeathsupply_8_0= '#nodeathsupply' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10619:3: lv_nodeathsupply_8_0= '#nodeathsupply'
                    {
                    lv_nodeathsupply_8_0=(Token)match(input,350,FOLLOW_350_in_ruleNationInst325745); 

                            newLeafNode(lv_nodeathsupply_8_0, grammarAccess.getNationInst3Access().getNodeathsupplyNodeathsupplyKeyword_8_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getNationInst3Rule());
                    	        }
                           		setWithLastConsumed(current, "nodeathsupply", true, "#nodeathsupply");
                    	    

                    }


                    }


                    }
                    break;
                case 10 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10633:6: ( (lv_autoundead_9_0= '#autoundead' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10633:6: ( (lv_autoundead_9_0= '#autoundead' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10634:1: (lv_autoundead_9_0= '#autoundead' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10634:1: (lv_autoundead_9_0= '#autoundead' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10635:3: lv_autoundead_9_0= '#autoundead'
                    {
                    lv_autoundead_9_0=(Token)match(input,351,FOLLOW_351_in_ruleNationInst325782); 

                            newLeafNode(lv_autoundead_9_0, grammarAccess.getNationInst3Access().getAutoundeadAutoundeadKeyword_9_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getNationInst3Rule());
                    	        }
                           		setWithLastConsumed(current, "autoundead", true, "#autoundead");
                    	    

                    }


                    }


                    }
                    break;
                case 11 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10649:6: ( (lv_zombiereanim_10_0= '#zombiereanim' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10649:6: ( (lv_zombiereanim_10_0= '#zombiereanim' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10650:1: (lv_zombiereanim_10_0= '#zombiereanim' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10650:1: (lv_zombiereanim_10_0= '#zombiereanim' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10651:3: lv_zombiereanim_10_0= '#zombiereanim'
                    {
                    lv_zombiereanim_10_0=(Token)match(input,352,FOLLOW_352_in_ruleNationInst325819); 

                            newLeafNode(lv_zombiereanim_10_0, grammarAccess.getNationInst3Access().getZombiereanimZombiereanimKeyword_10_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getNationInst3Rule());
                    	        }
                           		setWithLastConsumed(current, "zombiereanim", true, "#zombiereanim");
                    	    

                    }


                    }


                    }
                    break;
                case 12 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10665:6: ( (lv_horsereanim_11_0= '#horsereanim' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10665:6: ( (lv_horsereanim_11_0= '#horsereanim' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10666:1: (lv_horsereanim_11_0= '#horsereanim' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10666:1: (lv_horsereanim_11_0= '#horsereanim' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10667:3: lv_horsereanim_11_0= '#horsereanim'
                    {
                    lv_horsereanim_11_0=(Token)match(input,353,FOLLOW_353_in_ruleNationInst325856); 

                            newLeafNode(lv_horsereanim_11_0, grammarAccess.getNationInst3Access().getHorsereanimHorsereanimKeyword_11_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getNationInst3Rule());
                    	        }
                           		setWithLastConsumed(current, "horsereanim", true, "#horsereanim");
                    	    

                    }


                    }


                    }
                    break;
                case 13 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10681:6: ( (lv_wightreanim_12_0= '#wightreanim' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10681:6: ( (lv_wightreanim_12_0= '#wightreanim' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10682:1: (lv_wightreanim_12_0= '#wightreanim' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10682:1: (lv_wightreanim_12_0= '#wightreanim' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10683:3: lv_wightreanim_12_0= '#wightreanim'
                    {
                    lv_wightreanim_12_0=(Token)match(input,354,FOLLOW_354_in_ruleNationInst325893); 

                            newLeafNode(lv_wightreanim_12_0, grammarAccess.getNationInst3Access().getWightreanimWightreanimKeyword_12_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getNationInst3Rule());
                    	        }
                           		setWithLastConsumed(current, "wightreanim", true, "#wightreanim");
                    	    

                    }


                    }


                    }
                    break;
                case 14 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10697:6: ( (lv_manikinreanim_13_0= '#manikinreanim' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10697:6: ( (lv_manikinreanim_13_0= '#manikinreanim' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10698:1: (lv_manikinreanim_13_0= '#manikinreanim' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10698:1: (lv_manikinreanim_13_0= '#manikinreanim' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10699:3: lv_manikinreanim_13_0= '#manikinreanim'
                    {
                    lv_manikinreanim_13_0=(Token)match(input,355,FOLLOW_355_in_ruleNationInst325930); 

                            newLeafNode(lv_manikinreanim_13_0, grammarAccess.getNationInst3Access().getManikinreanimManikinreanimKeyword_13_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getNationInst3Rule());
                    	        }
                           		setWithLastConsumed(current, "manikinreanim", true, "#manikinreanim");
                    	    

                    }


                    }


                    }
                    break;
                case 15 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10713:6: ( (lv_tombwyrmreanim_14_0= '#tombwyrmreanim' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10713:6: ( (lv_tombwyrmreanim_14_0= '#tombwyrmreanim' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10714:1: (lv_tombwyrmreanim_14_0= '#tombwyrmreanim' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10714:1: (lv_tombwyrmreanim_14_0= '#tombwyrmreanim' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10715:3: lv_tombwyrmreanim_14_0= '#tombwyrmreanim'
                    {
                    lv_tombwyrmreanim_14_0=(Token)match(input,356,FOLLOW_356_in_ruleNationInst325967); 

                            newLeafNode(lv_tombwyrmreanim_14_0, grammarAccess.getNationInst3Access().getTombwyrmreanimTombwyrmreanimKeyword_14_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getNationInst3Rule());
                    	        }
                           		setWithLastConsumed(current, "tombwyrmreanim", true, "#tombwyrmreanim");
                    	    

                    }


                    }


                    }
                    break;

            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleNationInst3"


    // $ANTLR start "entryRuleNationInst4"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10736:1: entryRuleNationInst4 returns [EObject current=null] : iv_ruleNationInst4= ruleNationInst4 EOF ;
    public final EObject entryRuleNationInst4() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleNationInst4 = null;


        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10737:2: (iv_ruleNationInst4= ruleNationInst4 EOF )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10738:2: iv_ruleNationInst4= ruleNationInst4 EOF
            {
             newCompositeNode(grammarAccess.getNationInst4Rule()); 
            pushFollow(FOLLOW_ruleNationInst4_in_entryRuleNationInst426016);
            iv_ruleNationInst4=ruleNationInst4();

            state._fsp--;

             current =iv_ruleNationInst4; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleNationInst426026); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleNationInst4"


    // $ANTLR start "ruleNationInst4"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10745:1: ruleNationInst4 returns [EObject current=null] : ( ( (lv_startcom_0_0= '#startcom' ) ) | ( (lv_startscout_1_0= '#startscout' ) ) | ( (lv_startunittype1_2_0= '#startunittype1' ) ) | ( (lv_startunittype2_3_0= '#startunittype2' ) ) | ( (lv_addrecunit_4_0= '#addrecunit' ) ) | ( (lv_addreccom_5_0= '#addreccom' ) ) | ( (lv_uwunit1_6_0= '#uwunit1' ) ) | ( (lv_uwunit2_7_0= '#uwunit2' ) ) | ( (lv_uwunit3_8_0= '#uwunit3' ) ) | ( (lv_uwunit4_9_0= '#uwunit4' ) ) | ( (lv_uwunit5_10_0= '#uwunit5' ) ) | ( (lv_uwcom1_11_0= '#uwcom1' ) ) | ( (lv_uwcom2_12_0= '#uwcom2' ) ) | ( (lv_uwcom3_13_0= '#uwcom3' ) ) | ( (lv_uwcom4_14_0= '#uwcom4' ) ) | ( (lv_uwcom5_15_0= '#uwcom5' ) ) | ( (lv_defcom1_16_0= '#defcom1' ) ) | ( (lv_defcom2_17_0= '#defcom2' ) ) | ( (lv_defunit1_18_0= '#defunit1' ) ) | ( (lv_defunit1b_19_0= '#defunit1b' ) ) | ( (lv_defunit2_20_0= '#defunit2' ) ) | ( (lv_defunit2b_21_0= '#defunit2b' ) ) ) ;
    public final EObject ruleNationInst4() throws RecognitionException {
        EObject current = null;

        Token lv_startcom_0_0=null;
        Token lv_startscout_1_0=null;
        Token lv_startunittype1_2_0=null;
        Token lv_startunittype2_3_0=null;
        Token lv_addrecunit_4_0=null;
        Token lv_addreccom_5_0=null;
        Token lv_uwunit1_6_0=null;
        Token lv_uwunit2_7_0=null;
        Token lv_uwunit3_8_0=null;
        Token lv_uwunit4_9_0=null;
        Token lv_uwunit5_10_0=null;
        Token lv_uwcom1_11_0=null;
        Token lv_uwcom2_12_0=null;
        Token lv_uwcom3_13_0=null;
        Token lv_uwcom4_14_0=null;
        Token lv_uwcom5_15_0=null;
        Token lv_defcom1_16_0=null;
        Token lv_defcom2_17_0=null;
        Token lv_defunit1_18_0=null;
        Token lv_defunit1b_19_0=null;
        Token lv_defunit2_20_0=null;
        Token lv_defunit2b_21_0=null;

         enterRule(); 
            
        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10748:28: ( ( ( (lv_startcom_0_0= '#startcom' ) ) | ( (lv_startscout_1_0= '#startscout' ) ) | ( (lv_startunittype1_2_0= '#startunittype1' ) ) | ( (lv_startunittype2_3_0= '#startunittype2' ) ) | ( (lv_addrecunit_4_0= '#addrecunit' ) ) | ( (lv_addreccom_5_0= '#addreccom' ) ) | ( (lv_uwunit1_6_0= '#uwunit1' ) ) | ( (lv_uwunit2_7_0= '#uwunit2' ) ) | ( (lv_uwunit3_8_0= '#uwunit3' ) ) | ( (lv_uwunit4_9_0= '#uwunit4' ) ) | ( (lv_uwunit5_10_0= '#uwunit5' ) ) | ( (lv_uwcom1_11_0= '#uwcom1' ) ) | ( (lv_uwcom2_12_0= '#uwcom2' ) ) | ( (lv_uwcom3_13_0= '#uwcom3' ) ) | ( (lv_uwcom4_14_0= '#uwcom4' ) ) | ( (lv_uwcom5_15_0= '#uwcom5' ) ) | ( (lv_defcom1_16_0= '#defcom1' ) ) | ( (lv_defcom2_17_0= '#defcom2' ) ) | ( (lv_defunit1_18_0= '#defunit1' ) ) | ( (lv_defunit1b_19_0= '#defunit1b' ) ) | ( (lv_defunit2_20_0= '#defunit2' ) ) | ( (lv_defunit2b_21_0= '#defunit2b' ) ) ) )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10749:1: ( ( (lv_startcom_0_0= '#startcom' ) ) | ( (lv_startscout_1_0= '#startscout' ) ) | ( (lv_startunittype1_2_0= '#startunittype1' ) ) | ( (lv_startunittype2_3_0= '#startunittype2' ) ) | ( (lv_addrecunit_4_0= '#addrecunit' ) ) | ( (lv_addreccom_5_0= '#addreccom' ) ) | ( (lv_uwunit1_6_0= '#uwunit1' ) ) | ( (lv_uwunit2_7_0= '#uwunit2' ) ) | ( (lv_uwunit3_8_0= '#uwunit3' ) ) | ( (lv_uwunit4_9_0= '#uwunit4' ) ) | ( (lv_uwunit5_10_0= '#uwunit5' ) ) | ( (lv_uwcom1_11_0= '#uwcom1' ) ) | ( (lv_uwcom2_12_0= '#uwcom2' ) ) | ( (lv_uwcom3_13_0= '#uwcom3' ) ) | ( (lv_uwcom4_14_0= '#uwcom4' ) ) | ( (lv_uwcom5_15_0= '#uwcom5' ) ) | ( (lv_defcom1_16_0= '#defcom1' ) ) | ( (lv_defcom2_17_0= '#defcom2' ) ) | ( (lv_defunit1_18_0= '#defunit1' ) ) | ( (lv_defunit1b_19_0= '#defunit1b' ) ) | ( (lv_defunit2_20_0= '#defunit2' ) ) | ( (lv_defunit2b_21_0= '#defunit2b' ) ) )
            {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10749:1: ( ( (lv_startcom_0_0= '#startcom' ) ) | ( (lv_startscout_1_0= '#startscout' ) ) | ( (lv_startunittype1_2_0= '#startunittype1' ) ) | ( (lv_startunittype2_3_0= '#startunittype2' ) ) | ( (lv_addrecunit_4_0= '#addrecunit' ) ) | ( (lv_addreccom_5_0= '#addreccom' ) ) | ( (lv_uwunit1_6_0= '#uwunit1' ) ) | ( (lv_uwunit2_7_0= '#uwunit2' ) ) | ( (lv_uwunit3_8_0= '#uwunit3' ) ) | ( (lv_uwunit4_9_0= '#uwunit4' ) ) | ( (lv_uwunit5_10_0= '#uwunit5' ) ) | ( (lv_uwcom1_11_0= '#uwcom1' ) ) | ( (lv_uwcom2_12_0= '#uwcom2' ) ) | ( (lv_uwcom3_13_0= '#uwcom3' ) ) | ( (lv_uwcom4_14_0= '#uwcom4' ) ) | ( (lv_uwcom5_15_0= '#uwcom5' ) ) | ( (lv_defcom1_16_0= '#defcom1' ) ) | ( (lv_defcom2_17_0= '#defcom2' ) ) | ( (lv_defunit1_18_0= '#defunit1' ) ) | ( (lv_defunit1b_19_0= '#defunit1b' ) ) | ( (lv_defunit2_20_0= '#defunit2' ) ) | ( (lv_defunit2b_21_0= '#defunit2b' ) ) )
            int alt121=22;
            switch ( input.LA(1) ) {
            case 357:
                {
                alt121=1;
                }
                break;
            case 358:
                {
                alt121=2;
                }
                break;
            case 359:
                {
                alt121=3;
                }
                break;
            case 360:
                {
                alt121=4;
                }
                break;
            case 361:
                {
                alt121=5;
                }
                break;
            case 362:
                {
                alt121=6;
                }
                break;
            case 363:
                {
                alt121=7;
                }
                break;
            case 364:
                {
                alt121=8;
                }
                break;
            case 365:
                {
                alt121=9;
                }
                break;
            case 366:
                {
                alt121=10;
                }
                break;
            case 367:
                {
                alt121=11;
                }
                break;
            case 368:
                {
                alt121=12;
                }
                break;
            case 369:
                {
                alt121=13;
                }
                break;
            case 370:
                {
                alt121=14;
                }
                break;
            case 371:
                {
                alt121=15;
                }
                break;
            case 372:
                {
                alt121=16;
                }
                break;
            case 373:
                {
                alt121=17;
                }
                break;
            case 374:
                {
                alt121=18;
                }
                break;
            case 375:
                {
                alt121=19;
                }
                break;
            case 376:
                {
                alt121=20;
                }
                break;
            case 377:
                {
                alt121=21;
                }
                break;
            case 378:
                {
                alt121=22;
                }
                break;
            default:
                NoViableAltException nvae =
                    new NoViableAltException("", 121, 0, input);

                throw nvae;
            }

            switch (alt121) {
                case 1 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10749:2: ( (lv_startcom_0_0= '#startcom' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10749:2: ( (lv_startcom_0_0= '#startcom' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10750:1: (lv_startcom_0_0= '#startcom' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10750:1: (lv_startcom_0_0= '#startcom' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10751:3: lv_startcom_0_0= '#startcom'
                    {
                    lv_startcom_0_0=(Token)match(input,357,FOLLOW_357_in_ruleNationInst426069); 

                            newLeafNode(lv_startcom_0_0, grammarAccess.getNationInst4Access().getStartcomStartcomKeyword_0_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getNationInst4Rule());
                    	        }
                           		setWithLastConsumed(current, "startcom", true, "#startcom");
                    	    

                    }


                    }


                    }
                    break;
                case 2 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10765:6: ( (lv_startscout_1_0= '#startscout' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10765:6: ( (lv_startscout_1_0= '#startscout' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10766:1: (lv_startscout_1_0= '#startscout' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10766:1: (lv_startscout_1_0= '#startscout' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10767:3: lv_startscout_1_0= '#startscout'
                    {
                    lv_startscout_1_0=(Token)match(input,358,FOLLOW_358_in_ruleNationInst426106); 

                            newLeafNode(lv_startscout_1_0, grammarAccess.getNationInst4Access().getStartscoutStartscoutKeyword_1_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getNationInst4Rule());
                    	        }
                           		setWithLastConsumed(current, "startscout", true, "#startscout");
                    	    

                    }


                    }


                    }
                    break;
                case 3 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10781:6: ( (lv_startunittype1_2_0= '#startunittype1' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10781:6: ( (lv_startunittype1_2_0= '#startunittype1' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10782:1: (lv_startunittype1_2_0= '#startunittype1' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10782:1: (lv_startunittype1_2_0= '#startunittype1' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10783:3: lv_startunittype1_2_0= '#startunittype1'
                    {
                    lv_startunittype1_2_0=(Token)match(input,359,FOLLOW_359_in_ruleNationInst426143); 

                            newLeafNode(lv_startunittype1_2_0, grammarAccess.getNationInst4Access().getStartunittype1Startunittype1Keyword_2_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getNationInst4Rule());
                    	        }
                           		setWithLastConsumed(current, "startunittype1", true, "#startunittype1");
                    	    

                    }


                    }


                    }
                    break;
                case 4 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10797:6: ( (lv_startunittype2_3_0= '#startunittype2' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10797:6: ( (lv_startunittype2_3_0= '#startunittype2' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10798:1: (lv_startunittype2_3_0= '#startunittype2' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10798:1: (lv_startunittype2_3_0= '#startunittype2' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10799:3: lv_startunittype2_3_0= '#startunittype2'
                    {
                    lv_startunittype2_3_0=(Token)match(input,360,FOLLOW_360_in_ruleNationInst426180); 

                            newLeafNode(lv_startunittype2_3_0, grammarAccess.getNationInst4Access().getStartunittype2Startunittype2Keyword_3_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getNationInst4Rule());
                    	        }
                           		setWithLastConsumed(current, "startunittype2", true, "#startunittype2");
                    	    

                    }


                    }


                    }
                    break;
                case 5 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10813:6: ( (lv_addrecunit_4_0= '#addrecunit' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10813:6: ( (lv_addrecunit_4_0= '#addrecunit' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10814:1: (lv_addrecunit_4_0= '#addrecunit' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10814:1: (lv_addrecunit_4_0= '#addrecunit' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10815:3: lv_addrecunit_4_0= '#addrecunit'
                    {
                    lv_addrecunit_4_0=(Token)match(input,361,FOLLOW_361_in_ruleNationInst426217); 

                            newLeafNode(lv_addrecunit_4_0, grammarAccess.getNationInst4Access().getAddrecunitAddrecunitKeyword_4_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getNationInst4Rule());
                    	        }
                           		setWithLastConsumed(current, "addrecunit", true, "#addrecunit");
                    	    

                    }


                    }


                    }
                    break;
                case 6 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10829:6: ( (lv_addreccom_5_0= '#addreccom' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10829:6: ( (lv_addreccom_5_0= '#addreccom' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10830:1: (lv_addreccom_5_0= '#addreccom' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10830:1: (lv_addreccom_5_0= '#addreccom' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10831:3: lv_addreccom_5_0= '#addreccom'
                    {
                    lv_addreccom_5_0=(Token)match(input,362,FOLLOW_362_in_ruleNationInst426254); 

                            newLeafNode(lv_addreccom_5_0, grammarAccess.getNationInst4Access().getAddreccomAddreccomKeyword_5_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getNationInst4Rule());
                    	        }
                           		setWithLastConsumed(current, "addreccom", true, "#addreccom");
                    	    

                    }


                    }


                    }
                    break;
                case 7 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10845:6: ( (lv_uwunit1_6_0= '#uwunit1' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10845:6: ( (lv_uwunit1_6_0= '#uwunit1' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10846:1: (lv_uwunit1_6_0= '#uwunit1' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10846:1: (lv_uwunit1_6_0= '#uwunit1' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10847:3: lv_uwunit1_6_0= '#uwunit1'
                    {
                    lv_uwunit1_6_0=(Token)match(input,363,FOLLOW_363_in_ruleNationInst426291); 

                            newLeafNode(lv_uwunit1_6_0, grammarAccess.getNationInst4Access().getUwunit1Uwunit1Keyword_6_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getNationInst4Rule());
                    	        }
                           		setWithLastConsumed(current, "uwunit1", true, "#uwunit1");
                    	    

                    }


                    }


                    }
                    break;
                case 8 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10861:6: ( (lv_uwunit2_7_0= '#uwunit2' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10861:6: ( (lv_uwunit2_7_0= '#uwunit2' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10862:1: (lv_uwunit2_7_0= '#uwunit2' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10862:1: (lv_uwunit2_7_0= '#uwunit2' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10863:3: lv_uwunit2_7_0= '#uwunit2'
                    {
                    lv_uwunit2_7_0=(Token)match(input,364,FOLLOW_364_in_ruleNationInst426328); 

                            newLeafNode(lv_uwunit2_7_0, grammarAccess.getNationInst4Access().getUwunit2Uwunit2Keyword_7_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getNationInst4Rule());
                    	        }
                           		setWithLastConsumed(current, "uwunit2", true, "#uwunit2");
                    	    

                    }


                    }


                    }
                    break;
                case 9 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10877:6: ( (lv_uwunit3_8_0= '#uwunit3' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10877:6: ( (lv_uwunit3_8_0= '#uwunit3' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10878:1: (lv_uwunit3_8_0= '#uwunit3' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10878:1: (lv_uwunit3_8_0= '#uwunit3' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10879:3: lv_uwunit3_8_0= '#uwunit3'
                    {
                    lv_uwunit3_8_0=(Token)match(input,365,FOLLOW_365_in_ruleNationInst426365); 

                            newLeafNode(lv_uwunit3_8_0, grammarAccess.getNationInst4Access().getUwunit3Uwunit3Keyword_8_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getNationInst4Rule());
                    	        }
                           		setWithLastConsumed(current, "uwunit3", true, "#uwunit3");
                    	    

                    }


                    }


                    }
                    break;
                case 10 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10893:6: ( (lv_uwunit4_9_0= '#uwunit4' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10893:6: ( (lv_uwunit4_9_0= '#uwunit4' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10894:1: (lv_uwunit4_9_0= '#uwunit4' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10894:1: (lv_uwunit4_9_0= '#uwunit4' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10895:3: lv_uwunit4_9_0= '#uwunit4'
                    {
                    lv_uwunit4_9_0=(Token)match(input,366,FOLLOW_366_in_ruleNationInst426402); 

                            newLeafNode(lv_uwunit4_9_0, grammarAccess.getNationInst4Access().getUwunit4Uwunit4Keyword_9_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getNationInst4Rule());
                    	        }
                           		setWithLastConsumed(current, "uwunit4", true, "#uwunit4");
                    	    

                    }


                    }


                    }
                    break;
                case 11 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10909:6: ( (lv_uwunit5_10_0= '#uwunit5' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10909:6: ( (lv_uwunit5_10_0= '#uwunit5' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10910:1: (lv_uwunit5_10_0= '#uwunit5' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10910:1: (lv_uwunit5_10_0= '#uwunit5' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10911:3: lv_uwunit5_10_0= '#uwunit5'
                    {
                    lv_uwunit5_10_0=(Token)match(input,367,FOLLOW_367_in_ruleNationInst426439); 

                            newLeafNode(lv_uwunit5_10_0, grammarAccess.getNationInst4Access().getUwunit5Uwunit5Keyword_10_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getNationInst4Rule());
                    	        }
                           		setWithLastConsumed(current, "uwunit5", true, "#uwunit5");
                    	    

                    }


                    }


                    }
                    break;
                case 12 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10925:6: ( (lv_uwcom1_11_0= '#uwcom1' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10925:6: ( (lv_uwcom1_11_0= '#uwcom1' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10926:1: (lv_uwcom1_11_0= '#uwcom1' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10926:1: (lv_uwcom1_11_0= '#uwcom1' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10927:3: lv_uwcom1_11_0= '#uwcom1'
                    {
                    lv_uwcom1_11_0=(Token)match(input,368,FOLLOW_368_in_ruleNationInst426476); 

                            newLeafNode(lv_uwcom1_11_0, grammarAccess.getNationInst4Access().getUwcom1Uwcom1Keyword_11_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getNationInst4Rule());
                    	        }
                           		setWithLastConsumed(current, "uwcom1", true, "#uwcom1");
                    	    

                    }


                    }


                    }
                    break;
                case 13 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10941:6: ( (lv_uwcom2_12_0= '#uwcom2' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10941:6: ( (lv_uwcom2_12_0= '#uwcom2' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10942:1: (lv_uwcom2_12_0= '#uwcom2' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10942:1: (lv_uwcom2_12_0= '#uwcom2' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10943:3: lv_uwcom2_12_0= '#uwcom2'
                    {
                    lv_uwcom2_12_0=(Token)match(input,369,FOLLOW_369_in_ruleNationInst426513); 

                            newLeafNode(lv_uwcom2_12_0, grammarAccess.getNationInst4Access().getUwcom2Uwcom2Keyword_12_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getNationInst4Rule());
                    	        }
                           		setWithLastConsumed(current, "uwcom2", true, "#uwcom2");
                    	    

                    }


                    }


                    }
                    break;
                case 14 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10957:6: ( (lv_uwcom3_13_0= '#uwcom3' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10957:6: ( (lv_uwcom3_13_0= '#uwcom3' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10958:1: (lv_uwcom3_13_0= '#uwcom3' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10958:1: (lv_uwcom3_13_0= '#uwcom3' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10959:3: lv_uwcom3_13_0= '#uwcom3'
                    {
                    lv_uwcom3_13_0=(Token)match(input,370,FOLLOW_370_in_ruleNationInst426550); 

                            newLeafNode(lv_uwcom3_13_0, grammarAccess.getNationInst4Access().getUwcom3Uwcom3Keyword_13_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getNationInst4Rule());
                    	        }
                           		setWithLastConsumed(current, "uwcom3", true, "#uwcom3");
                    	    

                    }


                    }


                    }
                    break;
                case 15 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10973:6: ( (lv_uwcom4_14_0= '#uwcom4' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10973:6: ( (lv_uwcom4_14_0= '#uwcom4' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10974:1: (lv_uwcom4_14_0= '#uwcom4' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10974:1: (lv_uwcom4_14_0= '#uwcom4' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10975:3: lv_uwcom4_14_0= '#uwcom4'
                    {
                    lv_uwcom4_14_0=(Token)match(input,371,FOLLOW_371_in_ruleNationInst426587); 

                            newLeafNode(lv_uwcom4_14_0, grammarAccess.getNationInst4Access().getUwcom4Uwcom4Keyword_14_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getNationInst4Rule());
                    	        }
                           		setWithLastConsumed(current, "uwcom4", true, "#uwcom4");
                    	    

                    }


                    }


                    }
                    break;
                case 16 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10989:6: ( (lv_uwcom5_15_0= '#uwcom5' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10989:6: ( (lv_uwcom5_15_0= '#uwcom5' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10990:1: (lv_uwcom5_15_0= '#uwcom5' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10990:1: (lv_uwcom5_15_0= '#uwcom5' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:10991:3: lv_uwcom5_15_0= '#uwcom5'
                    {
                    lv_uwcom5_15_0=(Token)match(input,372,FOLLOW_372_in_ruleNationInst426624); 

                            newLeafNode(lv_uwcom5_15_0, grammarAccess.getNationInst4Access().getUwcom5Uwcom5Keyword_15_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getNationInst4Rule());
                    	        }
                           		setWithLastConsumed(current, "uwcom5", true, "#uwcom5");
                    	    

                    }


                    }


                    }
                    break;
                case 17 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:11005:6: ( (lv_defcom1_16_0= '#defcom1' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:11005:6: ( (lv_defcom1_16_0= '#defcom1' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:11006:1: (lv_defcom1_16_0= '#defcom1' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:11006:1: (lv_defcom1_16_0= '#defcom1' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:11007:3: lv_defcom1_16_0= '#defcom1'
                    {
                    lv_defcom1_16_0=(Token)match(input,373,FOLLOW_373_in_ruleNationInst426661); 

                            newLeafNode(lv_defcom1_16_0, grammarAccess.getNationInst4Access().getDefcom1Defcom1Keyword_16_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getNationInst4Rule());
                    	        }
                           		setWithLastConsumed(current, "defcom1", true, "#defcom1");
                    	    

                    }


                    }


                    }
                    break;
                case 18 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:11021:6: ( (lv_defcom2_17_0= '#defcom2' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:11021:6: ( (lv_defcom2_17_0= '#defcom2' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:11022:1: (lv_defcom2_17_0= '#defcom2' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:11022:1: (lv_defcom2_17_0= '#defcom2' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:11023:3: lv_defcom2_17_0= '#defcom2'
                    {
                    lv_defcom2_17_0=(Token)match(input,374,FOLLOW_374_in_ruleNationInst426698); 

                            newLeafNode(lv_defcom2_17_0, grammarAccess.getNationInst4Access().getDefcom2Defcom2Keyword_17_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getNationInst4Rule());
                    	        }
                           		setWithLastConsumed(current, "defcom2", true, "#defcom2");
                    	    

                    }


                    }


                    }
                    break;
                case 19 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:11037:6: ( (lv_defunit1_18_0= '#defunit1' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:11037:6: ( (lv_defunit1_18_0= '#defunit1' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:11038:1: (lv_defunit1_18_0= '#defunit1' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:11038:1: (lv_defunit1_18_0= '#defunit1' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:11039:3: lv_defunit1_18_0= '#defunit1'
                    {
                    lv_defunit1_18_0=(Token)match(input,375,FOLLOW_375_in_ruleNationInst426735); 

                            newLeafNode(lv_defunit1_18_0, grammarAccess.getNationInst4Access().getDefunit1Defunit1Keyword_18_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getNationInst4Rule());
                    	        }
                           		setWithLastConsumed(current, "defunit1", true, "#defunit1");
                    	    

                    }


                    }


                    }
                    break;
                case 20 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:11053:6: ( (lv_defunit1b_19_0= '#defunit1b' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:11053:6: ( (lv_defunit1b_19_0= '#defunit1b' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:11054:1: (lv_defunit1b_19_0= '#defunit1b' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:11054:1: (lv_defunit1b_19_0= '#defunit1b' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:11055:3: lv_defunit1b_19_0= '#defunit1b'
                    {
                    lv_defunit1b_19_0=(Token)match(input,376,FOLLOW_376_in_ruleNationInst426772); 

                            newLeafNode(lv_defunit1b_19_0, grammarAccess.getNationInst4Access().getDefunit1bDefunit1bKeyword_19_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getNationInst4Rule());
                    	        }
                           		setWithLastConsumed(current, "defunit1b", true, "#defunit1b");
                    	    

                    }


                    }


                    }
                    break;
                case 21 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:11069:6: ( (lv_defunit2_20_0= '#defunit2' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:11069:6: ( (lv_defunit2_20_0= '#defunit2' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:11070:1: (lv_defunit2_20_0= '#defunit2' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:11070:1: (lv_defunit2_20_0= '#defunit2' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:11071:3: lv_defunit2_20_0= '#defunit2'
                    {
                    lv_defunit2_20_0=(Token)match(input,377,FOLLOW_377_in_ruleNationInst426809); 

                            newLeafNode(lv_defunit2_20_0, grammarAccess.getNationInst4Access().getDefunit2Defunit2Keyword_20_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getNationInst4Rule());
                    	        }
                           		setWithLastConsumed(current, "defunit2", true, "#defunit2");
                    	    

                    }


                    }


                    }
                    break;
                case 22 :
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:11085:6: ( (lv_defunit2b_21_0= '#defunit2b' ) )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:11085:6: ( (lv_defunit2b_21_0= '#defunit2b' ) )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:11086:1: (lv_defunit2b_21_0= '#defunit2b' )
                    {
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:11086:1: (lv_defunit2b_21_0= '#defunit2b' )
                    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:11087:3: lv_defunit2b_21_0= '#defunit2b'
                    {
                    lv_defunit2b_21_0=(Token)match(input,378,FOLLOW_378_in_ruleNationInst426846); 

                            newLeafNode(lv_defunit2b_21_0, grammarAccess.getNationInst4Access().getDefunit2bDefunit2bKeyword_21_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getNationInst4Rule());
                    	        }
                           		setWithLastConsumed(current, "defunit2b", true, "#defunit2b");
                    	    

                    }


                    }


                    }
                    break;

            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleNationInst4"


    // $ANTLR start "entryRuleNationInst5"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:11108:1: entryRuleNationInst5 returns [EObject current=null] : iv_ruleNationInst5= ruleNationInst5 EOF ;
    public final EObject entryRuleNationInst5() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleNationInst5 = null;


        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:11109:2: (iv_ruleNationInst5= ruleNationInst5 EOF )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:11110:2: iv_ruleNationInst5= ruleNationInst5 EOF
            {
             newCompositeNode(grammarAccess.getNationInst5Rule()); 
            pushFollow(FOLLOW_ruleNationInst5_in_entryRuleNationInst526895);
            iv_ruleNationInst5=ruleNationInst5();

            state._fsp--;

             current =iv_ruleNationInst5; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleNationInst526905); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleNationInst5"


    // $ANTLR start "ruleNationInst5"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:11117:1: ruleNationInst5 returns [EObject current=null] : ( (lv_color_0_0= '#color' ) ) ;
    public final EObject ruleNationInst5() throws RecognitionException {
        EObject current = null;

        Token lv_color_0_0=null;

         enterRule(); 
            
        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:11120:28: ( ( (lv_color_0_0= '#color' ) ) )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:11121:1: ( (lv_color_0_0= '#color' ) )
            {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:11121:1: ( (lv_color_0_0= '#color' ) )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:11122:1: (lv_color_0_0= '#color' )
            {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:11122:1: (lv_color_0_0= '#color' )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:11123:3: lv_color_0_0= '#color'
            {
            lv_color_0_0=(Token)match(input,379,FOLLOW_379_in_ruleNationInst526947); 

                    newLeafNode(lv_color_0_0, grammarAccess.getNationInst5Access().getColorColorKeyword_0());
                

            	        if (current==null) {
            	            current = createModelElement(grammarAccess.getNationInst5Rule());
            	        }
                   		setWithLastConsumed(current, "color", true, "#color");
            	    

            }


            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleNationInst5"


    // $ANTLR start "entryRuleDecimalValue"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:11144:1: entryRuleDecimalValue returns [String current=null] : iv_ruleDecimalValue= ruleDecimalValue EOF ;
    public final String entryRuleDecimalValue() throws RecognitionException {
        String current = null;

        AntlrDatatypeRuleToken iv_ruleDecimalValue = null;


        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:11145:2: (iv_ruleDecimalValue= ruleDecimalValue EOF )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:11146:2: iv_ruleDecimalValue= ruleDecimalValue EOF
            {
             newCompositeNode(grammarAccess.getDecimalValueRule()); 
            pushFollow(FOLLOW_ruleDecimalValue_in_entryRuleDecimalValue26996);
            iv_ruleDecimalValue=ruleDecimalValue();

            state._fsp--;

             current =iv_ruleDecimalValue.getText(); 
            match(input,EOF,FOLLOW_EOF_in_entryRuleDecimalValue27007); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleDecimalValue"


    // $ANTLR start "ruleDecimalValue"
    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:11153:1: ruleDecimalValue returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_INT_0= RULE_INT (kw= '.' this_INT_2= RULE_INT )* ) ;
    public final AntlrDatatypeRuleToken ruleDecimalValue() throws RecognitionException {
        AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();

        Token this_INT_0=null;
        Token kw=null;
        Token this_INT_2=null;

         enterRule(); 
            
        try {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:11156:28: ( (this_INT_0= RULE_INT (kw= '.' this_INT_2= RULE_INT )* ) )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:11157:1: (this_INT_0= RULE_INT (kw= '.' this_INT_2= RULE_INT )* )
            {
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:11157:1: (this_INT_0= RULE_INT (kw= '.' this_INT_2= RULE_INT )* )
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:11157:6: this_INT_0= RULE_INT (kw= '.' this_INT_2= RULE_INT )*
            {
            this_INT_0=(Token)match(input,RULE_INT,FOLLOW_RULE_INT_in_ruleDecimalValue27047); 

            		current.merge(this_INT_0);
                
             
                newLeafNode(this_INT_0, grammarAccess.getDecimalValueAccess().getINTTerminalRuleCall_0()); 
                
            // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:11164:1: (kw= '.' this_INT_2= RULE_INT )*
            loop122:
            do {
                int alt122=2;
                int LA122_0 = input.LA(1);

                if ( (LA122_0==380) ) {
                    alt122=1;
                }


                switch (alt122) {
            	case 1 :
            	    // ../org.larz.dom3.dm/src-gen/org/larz/dom3/dm/parser/antlr/internal/InternalDm.g:11165:2: kw= '.' this_INT_2= RULE_INT
            	    {
            	    kw=(Token)match(input,380,FOLLOW_380_in_ruleDecimalValue27066); 

            	            current.merge(kw);
            	            newLeafNode(kw, grammarAccess.getDecimalValueAccess().getFullStopKeyword_1_0()); 
            	        
            	    this_INT_2=(Token)match(input,RULE_INT,FOLLOW_RULE_INT_in_ruleDecimalValue27081); 

            	    		current.merge(this_INT_2);
            	        
            	     
            	        newLeafNode(this_INT_2, grammarAccess.getDecimalValueAccess().getINTTerminalRuleCall_1_1()); 
            	        

            	    }
            	    break;

            	default :
            	    break loop122;
                }
            } while (true);


            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleDecimalValue"

    // Delegated rules


 

    public static final BitSet FOLLOW_ruleDom3Mod_in_entryRuleDom3Mod75 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleDom3Mod85 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_10_in_ruleDom3Mod168 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_RULE_STRING_in_ruleDom3Mod185 = new BitSet(new long[]{0x00000C0FFFFFFC02L,0x0000000000600000L,0x0000000000000000L,0x6000000000000000L,0x0003000000D06000L});
    public static final BitSet FOLLOW_11_in_ruleDom3Mod258 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_RULE_STRING_in_ruleDom3Mod275 = new BitSet(new long[]{0x00000C0FFFFFFC02L,0x0000000000600000L,0x0000000000000000L,0x6000000000000000L,0x0003000000D06000L});
    public static final BitSet FOLLOW_12_in_ruleDom3Mod348 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_RULE_STRING_in_ruleDom3Mod365 = new BitSet(new long[]{0x00000C0FFFFFFC02L,0x0000000000600000L,0x0000000000000000L,0x6000000000000000L,0x0003000000D06000L});
    public static final BitSet FOLLOW_13_in_ruleDom3Mod438 = new BitSet(new long[]{0x0000000000000020L});
    public static final BitSet FOLLOW_ruleDecimalValue_in_ruleDom3Mod459 = new BitSet(new long[]{0x00000C0FFFFFFC02L,0x0000000000600000L,0x0000000000000000L,0x6000000000000000L,0x0003000000D06000L});
    public static final BitSet FOLLOW_14_in_ruleDom3Mod527 = new BitSet(new long[]{0x0000000000000020L});
    public static final BitSet FOLLOW_ruleDecimalValue_in_ruleDom3Mod548 = new BitSet(new long[]{0x00000C0FFFFFFC02L,0x0000000000600000L,0x0000000000000000L,0x6000000000000000L,0x0003000000D06000L});
    public static final BitSet FOLLOW_15_in_ruleDom3Mod616 = new BitSet(new long[]{0x00000C0FFFFFFC02L,0x0000000000600000L,0x0000000000000000L,0x6000000000000000L,0x0003000000D06000L});
    public static final BitSet FOLLOW_ruleAbstractElement_in_ruleDom3Mod684 = new BitSet(new long[]{0x00000C0FFFFF0002L,0x0000000000600000L,0x0000000000000000L,0x6000000000000000L,0x0003000000D06000L});
    public static final BitSet FOLLOW_ruleAbstractElement_in_entryRuleAbstractElement721 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleAbstractElement731 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleGeneral_in_ruleAbstractElement778 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleArmor_in_ruleAbstractElement805 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleWeapon_in_ruleAbstractElement832 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleMonster_in_ruleAbstractElement859 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleSpell_in_ruleAbstractElement886 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleItem_in_ruleAbstractElement913 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleName_in_ruleAbstractElement940 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleSite_in_ruleAbstractElement967 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleNation_in_ruleAbstractElement994 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleGeneral_in_entryRuleGeneral1029 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleGeneral1039 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleGeneralPattern1_in_ruleGeneral1085 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleGeneralPattern1_in_entryRuleGeneralPattern11119 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleGeneralPattern11129 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleGeneralInst1_in_ruleGeneralPattern11176 = new BitSet(new long[]{0x0000000000000020L});
    public static final BitSet FOLLOW_RULE_INT_in_ruleGeneralPattern11192 = new BitSet(new long[]{0x0000000000008042L});
    public static final BitSet FOLLOW_RULE_FREE_FORM_COMMENT_in_ruleGeneralPattern11209 = new BitSet(new long[]{0x0000000000008042L});
    public static final BitSet FOLLOW_15_in_ruleGeneralPattern11223 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleGeneralInst1_in_entryRuleGeneralInst11261 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleGeneralInst11271 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_16_in_ruleGeneralInst11314 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_17_in_ruleGeneralInst11351 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_18_in_ruleGeneralInst11388 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_19_in_ruleGeneralInst11425 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_20_in_ruleGeneralInst11462 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_21_in_ruleGeneralInst11499 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_22_in_ruleGeneralInst11536 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_23_in_ruleGeneralInst11573 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_24_in_ruleGeneralInst11610 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_25_in_ruleGeneralInst11647 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_26_in_ruleGeneralInst11684 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_27_in_ruleGeneralInst11721 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_28_in_ruleGeneralInst11758 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_29_in_ruleGeneralInst11795 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_30_in_ruleGeneralInst11832 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_31_in_ruleGeneralInst11869 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_32_in_ruleGeneralInst11906 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_33_in_ruleGeneralInst11943 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleArmor_in_entryRuleArmor1992 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleArmor2002 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleSelectArmorById_in_ruleArmor2049 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleSelectArmorByName_in_ruleArmor2076 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleNewArmor_in_ruleArmor2103 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleSelectArmorById_in_entryRuleSelectArmorById2138 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleSelectArmorById2148 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_34_in_ruleSelectArmorById2185 = new BitSet(new long[]{0x0000000000000020L});
    public static final BitSet FOLLOW_RULE_INT_in_ruleSelectArmorById2202 = new BitSet(new long[]{0x000003F000008040L});
    public static final BitSet FOLLOW_RULE_FREE_FORM_COMMENT_in_ruleSelectArmorById2219 = new BitSet(new long[]{0x000003F000008040L});
    public static final BitSet FOLLOW_ruleArmorMods_in_ruleSelectArmorById2241 = new BitSet(new long[]{0x000003F000008000L});
    public static final BitSet FOLLOW_15_in_ruleSelectArmorById2254 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleSelectArmorByName_in_entryRuleSelectArmorByName2290 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleSelectArmorByName2300 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_34_in_ruleSelectArmorByName2337 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_RULE_STRING_in_ruleSelectArmorByName2354 = new BitSet(new long[]{0x000003F000008040L});
    public static final BitSet FOLLOW_RULE_FREE_FORM_COMMENT_in_ruleSelectArmorByName2371 = new BitSet(new long[]{0x000003F000008040L});
    public static final BitSet FOLLOW_ruleArmorMods_in_ruleSelectArmorByName2393 = new BitSet(new long[]{0x000003F000008000L});
    public static final BitSet FOLLOW_15_in_ruleSelectArmorByName2406 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleNewArmor_in_entryRuleNewArmor2442 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleNewArmor2452 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_35_in_ruleNewArmor2489 = new BitSet(new long[]{0x0000000000000020L});
    public static final BitSet FOLLOW_RULE_INT_in_ruleNewArmor2506 = new BitSet(new long[]{0x000003F000008040L});
    public static final BitSet FOLLOW_RULE_FREE_FORM_COMMENT_in_ruleNewArmor2523 = new BitSet(new long[]{0x000003F000008040L});
    public static final BitSet FOLLOW_ruleArmorMods_in_ruleNewArmor2545 = new BitSet(new long[]{0x000003F000008000L});
    public static final BitSet FOLLOW_15_in_ruleNewArmor2558 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleArmorMods_in_entryRuleArmorMods2594 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleArmorMods2604 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleArmorPattern1_in_ruleArmorMods2651 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleArmorPattern2_in_ruleArmorMods2678 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleArmorPattern1_in_entryRuleArmorPattern12713 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleArmorPattern12723 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleArmorInst1_in_ruleArmorPattern12770 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_RULE_STRING_in_ruleArmorPattern12786 = new BitSet(new long[]{0x0000000000000042L});
    public static final BitSet FOLLOW_RULE_FREE_FORM_COMMENT_in_ruleArmorPattern12803 = new BitSet(new long[]{0x0000000000000042L});
    public static final BitSet FOLLOW_ruleArmorPattern2_in_entryRuleArmorPattern22840 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleArmorPattern22850 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleArmorInst2_in_ruleArmorPattern22897 = new BitSet(new long[]{0x0000000000000020L});
    public static final BitSet FOLLOW_RULE_INT_in_ruleArmorPattern22913 = new BitSet(new long[]{0x0000000000000042L});
    public static final BitSet FOLLOW_RULE_FREE_FORM_COMMENT_in_ruleArmorPattern22930 = new BitSet(new long[]{0x0000000000000042L});
    public static final BitSet FOLLOW_ruleArmorInst1_in_entryRuleArmorInst12967 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleArmorInst12977 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_36_in_ruleArmorInst13019 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleArmorInst2_in_entryRuleArmorInst23067 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleArmorInst23077 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_37_in_ruleArmorInst23120 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_38_in_ruleArmorInst23157 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_39_in_ruleArmorInst23194 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_40_in_ruleArmorInst23231 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_41_in_ruleArmorInst23268 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleWeapon_in_entryRuleWeapon3317 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleWeapon3327 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleSelectWeaponById_in_ruleWeapon3374 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleSelectWeaponByName_in_ruleWeapon3401 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleNewWeapon_in_ruleWeapon3428 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleSelectWeaponById_in_entryRuleSelectWeaponById3463 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleSelectWeaponById3473 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_42_in_ruleSelectWeaponById3510 = new BitSet(new long[]{0x0000000000000020L});
    public static final BitSet FOLLOW_RULE_INT_in_ruleSelectWeaponById3527 = new BitSet(new long[]{0xFFFFF29000008040L,0x00000000001FFFFFL});
    public static final BitSet FOLLOW_RULE_FREE_FORM_COMMENT_in_ruleSelectWeaponById3544 = new BitSet(new long[]{0xFFFFF29000008040L,0x00000000001FFFFFL});
    public static final BitSet FOLLOW_ruleWeaponMods_in_ruleSelectWeaponById3566 = new BitSet(new long[]{0xFFFFF29000008000L,0x00000000001FFFFFL});
    public static final BitSet FOLLOW_15_in_ruleSelectWeaponById3579 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleSelectWeaponByName_in_entryRuleSelectWeaponByName3615 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleSelectWeaponByName3625 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_42_in_ruleSelectWeaponByName3662 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_RULE_STRING_in_ruleSelectWeaponByName3679 = new BitSet(new long[]{0xFFFFF29000008040L,0x00000000001FFFFFL});
    public static final BitSet FOLLOW_RULE_FREE_FORM_COMMENT_in_ruleSelectWeaponByName3696 = new BitSet(new long[]{0xFFFFF29000008040L,0x00000000001FFFFFL});
    public static final BitSet FOLLOW_ruleWeaponMods_in_ruleSelectWeaponByName3718 = new BitSet(new long[]{0xFFFFF29000008000L,0x00000000001FFFFFL});
    public static final BitSet FOLLOW_15_in_ruleSelectWeaponByName3731 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleNewWeapon_in_entryRuleNewWeapon3767 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleNewWeapon3777 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_43_in_ruleNewWeapon3814 = new BitSet(new long[]{0x0000000000000020L});
    public static final BitSet FOLLOW_RULE_INT_in_ruleNewWeapon3831 = new BitSet(new long[]{0xFFFFF29000008040L,0x00000000001FFFFFL});
    public static final BitSet FOLLOW_RULE_FREE_FORM_COMMENT_in_ruleNewWeapon3848 = new BitSet(new long[]{0xFFFFF29000008040L,0x00000000001FFFFFL});
    public static final BitSet FOLLOW_ruleWeaponMods_in_ruleNewWeapon3870 = new BitSet(new long[]{0xFFFFF29000008000L,0x00000000001FFFFFL});
    public static final BitSet FOLLOW_15_in_ruleNewWeapon3883 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleWeaponMods_in_entryRuleWeaponMods3919 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleWeaponMods3929 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleWeaponPattern1_in_ruleWeaponMods3976 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleWeaponPattern2_in_ruleWeaponMods4003 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleWeaponPattern3_in_ruleWeaponMods4030 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleWeaponPattern4_in_ruleWeaponMods4057 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleWeaponPattern1_in_entryRuleWeaponPattern14092 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleWeaponPattern14102 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleWeaponInst1_in_ruleWeaponPattern14149 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_RULE_STRING_in_ruleWeaponPattern14165 = new BitSet(new long[]{0x0000000000000042L});
    public static final BitSet FOLLOW_RULE_FREE_FORM_COMMENT_in_ruleWeaponPattern14182 = new BitSet(new long[]{0x0000000000000042L});
    public static final BitSet FOLLOW_ruleWeaponPattern2_in_entryRuleWeaponPattern24219 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleWeaponPattern24229 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleWeaponInst2_in_ruleWeaponPattern24276 = new BitSet(new long[]{0x0000000000000020L});
    public static final BitSet FOLLOW_RULE_INT_in_ruleWeaponPattern24292 = new BitSet(new long[]{0x0000000000000042L});
    public static final BitSet FOLLOW_RULE_FREE_FORM_COMMENT_in_ruleWeaponPattern24309 = new BitSet(new long[]{0x0000000000000042L});
    public static final BitSet FOLLOW_ruleWeaponPattern3_in_entryRuleWeaponPattern34346 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleWeaponPattern34356 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleWeaponInst3_in_ruleWeaponPattern34403 = new BitSet(new long[]{0x0000000000000020L});
    public static final BitSet FOLLOW_RULE_INT_in_ruleWeaponPattern34419 = new BitSet(new long[]{0x0000000000000062L});
    public static final BitSet FOLLOW_RULE_INT_in_ruleWeaponPattern34441 = new BitSet(new long[]{0x0000000000000042L});
    public static final BitSet FOLLOW_RULE_FREE_FORM_COMMENT_in_ruleWeaponPattern34459 = new BitSet(new long[]{0x0000000000000042L});
    public static final BitSet FOLLOW_ruleWeaponPattern4_in_entryRuleWeaponPattern44496 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleWeaponPattern44506 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleWeaponInst4_in_ruleWeaponPattern44553 = new BitSet(new long[]{0x0000000000000042L});
    public static final BitSet FOLLOW_RULE_FREE_FORM_COMMENT_in_ruleWeaponPattern44564 = new BitSet(new long[]{0x0000000000000042L});
    public static final BitSet FOLLOW_ruleWeaponInst1_in_entryRuleWeaponInst14601 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleWeaponInst14611 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_36_in_ruleWeaponInst14653 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleWeaponInst2_in_entryRuleWeaponInst24701 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleWeaponInst24711 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_44_in_ruleWeaponInst24754 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_45_in_ruleWeaponInst24791 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_46_in_ruleWeaponInst24828 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_39_in_ruleWeaponInst24865 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_47_in_ruleWeaponInst24902 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_48_in_ruleWeaponInst24939 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_49_in_ruleWeaponInst24976 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_41_in_ruleWeaponInst25013 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_50_in_ruleWeaponInst25050 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_51_in_ruleWeaponInst25087 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_52_in_ruleWeaponInst25124 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_53_in_ruleWeaponInst25161 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_54_in_ruleWeaponInst25198 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleWeaponInst3_in_entryRuleWeaponInst35247 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleWeaponInst35257 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_55_in_ruleWeaponInst35299 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleWeaponInst4_in_entryRuleWeaponInst45347 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleWeaponInst45357 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_56_in_ruleWeaponInst45400 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_57_in_ruleWeaponInst45437 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_58_in_ruleWeaponInst45474 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_59_in_ruleWeaponInst45511 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_60_in_ruleWeaponInst45548 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_61_in_ruleWeaponInst45585 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_62_in_ruleWeaponInst45622 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_63_in_ruleWeaponInst45659 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_64_in_ruleWeaponInst45696 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_65_in_ruleWeaponInst45733 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_66_in_ruleWeaponInst45770 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_67_in_ruleWeaponInst45807 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_68_in_ruleWeaponInst45844 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_69_in_ruleWeaponInst45881 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_70_in_ruleWeaponInst45918 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_71_in_ruleWeaponInst45955 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_72_in_ruleWeaponInst45992 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_73_in_ruleWeaponInst46029 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_74_in_ruleWeaponInst46066 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_75_in_ruleWeaponInst46103 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_76_in_ruleWeaponInst46140 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_77_in_ruleWeaponInst46177 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_78_in_ruleWeaponInst46214 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_79_in_ruleWeaponInst46251 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_80_in_ruleWeaponInst46288 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_81_in_ruleWeaponInst46325 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_82_in_ruleWeaponInst46362 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_83_in_ruleWeaponInst46399 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_84_in_ruleWeaponInst46436 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleMonster_in_entryRuleMonster6485 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleMonster6495 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleSelectMonsterById_in_ruleMonster6542 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleSelectMonsterByName_in_ruleMonster6569 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleNewMonster_in_ruleMonster6596 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleSelectMonsterById_in_entryRuleSelectMonsterById6631 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleSelectMonsterById6641 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_85_in_ruleSelectMonsterById6678 = new BitSet(new long[]{0x0000000000000020L});
    public static final BitSet FOLLOW_RULE_INT_in_ruleSelectMonsterById6695 = new BitSet(new long[]{0x000043D000008040L,0xFFFFFFFFFF800400L,0xFFFFFFFFFFFFFFFFL,0x1FFFFFFFFFFFFFFFL});
    public static final BitSet FOLLOW_RULE_FREE_FORM_COMMENT_in_ruleSelectMonsterById6712 = new BitSet(new long[]{0x000043D000008040L,0xFFFFFFFFFF800400L,0xFFFFFFFFFFFFFFFFL,0x1FFFFFFFFFFFFFFFL});
    public static final BitSet FOLLOW_ruleMonsterMods_in_ruleSelectMonsterById6734 = new BitSet(new long[]{0x000043D000008000L,0xFFFFFFFFFF800400L,0xFFFFFFFFFFFFFFFFL,0x1FFFFFFFFFFFFFFFL});
    public static final BitSet FOLLOW_15_in_ruleSelectMonsterById6747 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleSelectMonsterByName_in_entryRuleSelectMonsterByName6783 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleSelectMonsterByName6793 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_85_in_ruleSelectMonsterByName6830 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_RULE_STRING_in_ruleSelectMonsterByName6847 = new BitSet(new long[]{0x000043D000008040L,0xFFFFFFFFFF800400L,0xFFFFFFFFFFFFFFFFL,0x1FFFFFFFFFFFFFFFL});
    public static final BitSet FOLLOW_RULE_FREE_FORM_COMMENT_in_ruleSelectMonsterByName6864 = new BitSet(new long[]{0x000043D000008040L,0xFFFFFFFFFF800400L,0xFFFFFFFFFFFFFFFFL,0x1FFFFFFFFFFFFFFFL});
    public static final BitSet FOLLOW_ruleMonsterMods_in_ruleSelectMonsterByName6886 = new BitSet(new long[]{0x000043D000008000L,0xFFFFFFFFFF800400L,0xFFFFFFFFFFFFFFFFL,0x1FFFFFFFFFFFFFFFL});
    public static final BitSet FOLLOW_15_in_ruleSelectMonsterByName6899 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleNewMonster_in_entryRuleNewMonster6935 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleNewMonster6945 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_86_in_ruleNewMonster6982 = new BitSet(new long[]{0x0000000000000020L});
    public static final BitSet FOLLOW_RULE_INT_in_ruleNewMonster6999 = new BitSet(new long[]{0x000043D000008040L,0xFFFFFFFFFF800400L,0xFFFFFFFFFFFFFFFFL,0x1FFFFFFFFFFFFFFFL});
    public static final BitSet FOLLOW_RULE_FREE_FORM_COMMENT_in_ruleNewMonster7016 = new BitSet(new long[]{0x000043D000008040L,0xFFFFFFFFFF800400L,0xFFFFFFFFFFFFFFFFL,0x1FFFFFFFFFFFFFFFL});
    public static final BitSet FOLLOW_ruleMonsterMods_in_ruleNewMonster7038 = new BitSet(new long[]{0x000043D000008000L,0xFFFFFFFFFF800400L,0xFFFFFFFFFFFFFFFFL,0x1FFFFFFFFFFFFFFFL});
    public static final BitSet FOLLOW_15_in_ruleNewMonster7051 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleMonsterMods_in_entryRuleMonsterMods7087 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleMonsterMods7097 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleMonsterPattern1_in_ruleMonsterMods7144 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleMonsterPattern2_in_ruleMonsterMods7171 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleMonsterPattern3_in_ruleMonsterMods7198 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleMonsterPattern4_in_ruleMonsterMods7225 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleMonsterPattern5_in_ruleMonsterMods7252 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleMonsterPattern6_in_ruleMonsterMods7279 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleMonsterPattern1_in_entryRuleMonsterPattern17314 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleMonsterPattern17324 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleMonsterInst1_in_ruleMonsterPattern17371 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_RULE_STRING_in_ruleMonsterPattern17387 = new BitSet(new long[]{0x0000000000000042L});
    public static final BitSet FOLLOW_RULE_FREE_FORM_COMMENT_in_ruleMonsterPattern17404 = new BitSet(new long[]{0x0000000000000042L});
    public static final BitSet FOLLOW_ruleMonsterPattern2_in_entryRuleMonsterPattern27441 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleMonsterPattern27451 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleMonsterInst2_in_ruleMonsterPattern27498 = new BitSet(new long[]{0x0000000000000020L});
    public static final BitSet FOLLOW_RULE_INT_in_ruleMonsterPattern27514 = new BitSet(new long[]{0x0000000000000042L});
    public static final BitSet FOLLOW_RULE_FREE_FORM_COMMENT_in_ruleMonsterPattern27531 = new BitSet(new long[]{0x0000000000000042L});
    public static final BitSet FOLLOW_ruleMonsterPattern3_in_entryRuleMonsterPattern37568 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleMonsterPattern37578 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleMonsterInst3_in_ruleMonsterPattern37625 = new BitSet(new long[]{0x0000000000000020L});
    public static final BitSet FOLLOW_RULE_INT_in_ruleMonsterPattern37641 = new BitSet(new long[]{0x0000000000000020L});
    public static final BitSet FOLLOW_RULE_INT_in_ruleMonsterPattern37663 = new BitSet(new long[]{0x0000000000000042L});
    public static final BitSet FOLLOW_RULE_FREE_FORM_COMMENT_in_ruleMonsterPattern37680 = new BitSet(new long[]{0x0000000000000042L});
    public static final BitSet FOLLOW_ruleMonsterPattern4_in_entryRuleMonsterPattern47717 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleMonsterPattern47727 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleMonsterInst4_in_ruleMonsterPattern47774 = new BitSet(new long[]{0x0000000000000042L});
    public static final BitSet FOLLOW_RULE_FREE_FORM_COMMENT_in_ruleMonsterPattern47785 = new BitSet(new long[]{0x0000000000000042L});
    public static final BitSet FOLLOW_ruleMonsterPattern5_in_entryRuleMonsterPattern57822 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleMonsterPattern57832 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleMonsterInst5_in_ruleMonsterPattern57879 = new BitSet(new long[]{0x0000000000000030L});
    public static final BitSet FOLLOW_RULE_STRING_in_ruleMonsterPattern57896 = new BitSet(new long[]{0x0000000000000042L});
    public static final BitSet FOLLOW_RULE_INT_in_ruleMonsterPattern57924 = new BitSet(new long[]{0x0000000000000042L});
    public static final BitSet FOLLOW_RULE_FREE_FORM_COMMENT_in_ruleMonsterPattern57942 = new BitSet(new long[]{0x0000000000000042L});
    public static final BitSet FOLLOW_ruleMonsterPattern6_in_entryRuleMonsterPattern67979 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleMonsterPattern67989 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleMonsterInst6_in_ruleMonsterPattern68036 = new BitSet(new long[]{0x0000000000000062L});
    public static final BitSet FOLLOW_RULE_INT_in_ruleMonsterPattern68052 = new BitSet(new long[]{0x0000000000000042L});
    public static final BitSet FOLLOW_RULE_FREE_FORM_COMMENT_in_ruleMonsterPattern68070 = new BitSet(new long[]{0x0000000000000042L});
    public static final BitSet FOLLOW_ruleMonsterInst1_in_entryRuleMonsterInst18107 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleMonsterInst18117 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_36_in_ruleMonsterInst18160 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_87_in_ruleMonsterInst18197 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_88_in_ruleMonsterInst18234 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_89_in_ruleMonsterInst18271 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleMonsterInst2_in_entryRuleMonsterInst28320 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleMonsterInst28330 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_90_in_ruleMonsterInst28373 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_91_in_ruleMonsterInst28410 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_92_in_ruleMonsterInst28447 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_93_in_ruleMonsterInst28484 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_38_in_ruleMonsterInst28521 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_94_in_ruleMonsterInst28558 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_95_in_ruleMonsterInst28595 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_96_in_ruleMonsterInst28632 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_40_in_ruleMonsterInst28669 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_46_in_ruleMonsterInst28706 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_39_in_ruleMonsterInst28743 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_97_in_ruleMonsterInst28780 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_98_in_ruleMonsterInst28817 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_99_in_ruleMonsterInst28854 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_100_in_ruleMonsterInst28891 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_41_in_ruleMonsterInst28928 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_101_in_ruleMonsterInst28965 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_102_in_ruleMonsterInst29002 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_103_in_ruleMonsterInst29039 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_104_in_ruleMonsterInst29076 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_105_in_ruleMonsterInst29113 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_106_in_ruleMonsterInst29150 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_107_in_ruleMonsterInst29187 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_108_in_ruleMonsterInst29224 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_109_in_ruleMonsterInst29261 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_110_in_ruleMonsterInst29298 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_111_in_ruleMonsterInst29335 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_112_in_ruleMonsterInst29372 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_113_in_ruleMonsterInst29409 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_114_in_ruleMonsterInst29446 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_115_in_ruleMonsterInst29483 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_116_in_ruleMonsterInst29520 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_117_in_ruleMonsterInst29557 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_118_in_ruleMonsterInst29594 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_119_in_ruleMonsterInst29631 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_120_in_ruleMonsterInst29668 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_121_in_ruleMonsterInst29705 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_122_in_ruleMonsterInst29742 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_123_in_ruleMonsterInst29779 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_124_in_ruleMonsterInst29816 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_125_in_ruleMonsterInst29853 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_126_in_ruleMonsterInst29890 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_127_in_ruleMonsterInst29927 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_128_in_ruleMonsterInst29964 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_129_in_ruleMonsterInst210001 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_130_in_ruleMonsterInst210038 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_131_in_ruleMonsterInst210075 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_132_in_ruleMonsterInst210112 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_133_in_ruleMonsterInst210149 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_134_in_ruleMonsterInst210186 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_135_in_ruleMonsterInst210223 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_136_in_ruleMonsterInst210260 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_137_in_ruleMonsterInst210297 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_138_in_ruleMonsterInst210334 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_139_in_ruleMonsterInst210371 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_140_in_ruleMonsterInst210408 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_141_in_ruleMonsterInst210445 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_142_in_ruleMonsterInst210482 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_143_in_ruleMonsterInst210519 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_144_in_ruleMonsterInst210556 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_145_in_ruleMonsterInst210593 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_146_in_ruleMonsterInst210630 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_147_in_ruleMonsterInst210667 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_148_in_ruleMonsterInst210704 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_149_in_ruleMonsterInst210741 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_150_in_ruleMonsterInst210778 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_151_in_ruleMonsterInst210815 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_152_in_ruleMonsterInst210852 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_153_in_ruleMonsterInst210889 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_154_in_ruleMonsterInst210926 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_155_in_ruleMonsterInst210963 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_156_in_ruleMonsterInst211000 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_157_in_ruleMonsterInst211037 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_158_in_ruleMonsterInst211074 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_159_in_ruleMonsterInst211111 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_160_in_ruleMonsterInst211148 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_161_in_ruleMonsterInst211185 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_162_in_ruleMonsterInst211222 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleMonsterInst3_in_entryRuleMonsterInst311271 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleMonsterInst311281 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_163_in_ruleMonsterInst311324 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_164_in_ruleMonsterInst311361 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_165_in_ruleMonsterInst311398 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_166_in_ruleMonsterInst311435 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleMonsterInst4_in_entryRuleMonsterInst411484 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleMonsterInst411494 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_167_in_ruleMonsterInst411537 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_168_in_ruleMonsterInst411574 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_169_in_ruleMonsterInst411611 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_170_in_ruleMonsterInst411648 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_171_in_ruleMonsterInst411685 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_172_in_ruleMonsterInst411722 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_173_in_ruleMonsterInst411759 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_174_in_ruleMonsterInst411796 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_175_in_ruleMonsterInst411833 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_176_in_ruleMonsterInst411870 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_177_in_ruleMonsterInst411907 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_178_in_ruleMonsterInst411944 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_179_in_ruleMonsterInst411981 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_180_in_ruleMonsterInst412018 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_181_in_ruleMonsterInst412055 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_182_in_ruleMonsterInst412092 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_183_in_ruleMonsterInst412129 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_184_in_ruleMonsterInst412166 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_185_in_ruleMonsterInst412203 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_186_in_ruleMonsterInst412240 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_187_in_ruleMonsterInst412277 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_188_in_ruleMonsterInst412314 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_189_in_ruleMonsterInst412351 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_190_in_ruleMonsterInst412388 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_191_in_ruleMonsterInst412425 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_192_in_ruleMonsterInst412462 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_193_in_ruleMonsterInst412499 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_194_in_ruleMonsterInst412536 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_195_in_ruleMonsterInst412573 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_196_in_ruleMonsterInst412610 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_197_in_ruleMonsterInst412647 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_198_in_ruleMonsterInst412684 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_199_in_ruleMonsterInst412721 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_200_in_ruleMonsterInst412758 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_201_in_ruleMonsterInst412795 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_202_in_ruleMonsterInst412832 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_203_in_ruleMonsterInst412869 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_204_in_ruleMonsterInst412906 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_205_in_ruleMonsterInst412943 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_206_in_ruleMonsterInst412980 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_207_in_ruleMonsterInst413017 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_208_in_ruleMonsterInst413054 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_209_in_ruleMonsterInst413091 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_210_in_ruleMonsterInst413128 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_211_in_ruleMonsterInst413165 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_212_in_ruleMonsterInst413202 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_213_in_ruleMonsterInst413239 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_214_in_ruleMonsterInst413276 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_215_in_ruleMonsterInst413313 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_216_in_ruleMonsterInst413350 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_217_in_ruleMonsterInst413387 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_218_in_ruleMonsterInst413424 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_219_in_ruleMonsterInst413461 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_220_in_ruleMonsterInst413498 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_221_in_ruleMonsterInst413535 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_222_in_ruleMonsterInst413572 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_223_in_ruleMonsterInst413609 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_224_in_ruleMonsterInst413646 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_225_in_ruleMonsterInst413683 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_226_in_ruleMonsterInst413720 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_227_in_ruleMonsterInst413757 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_228_in_ruleMonsterInst413794 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_229_in_ruleMonsterInst413831 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleMonsterInst5_in_entryRuleMonsterInst513880 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleMonsterInst513890 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_230_in_ruleMonsterInst513933 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_231_in_ruleMonsterInst513970 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_232_in_ruleMonsterInst514007 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_233_in_ruleMonsterInst514044 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_234_in_ruleMonsterInst514081 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_235_in_ruleMonsterInst514118 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_236_in_ruleMonsterInst514155 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_237_in_ruleMonsterInst514192 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_238_in_ruleMonsterInst514229 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_239_in_ruleMonsterInst514266 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_240_in_ruleMonsterInst514303 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_241_in_ruleMonsterInst514340 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_242_in_ruleMonsterInst514377 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_243_in_ruleMonsterInst514414 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_244_in_ruleMonsterInst514451 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_245_in_ruleMonsterInst514488 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_246_in_ruleMonsterInst514525 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_247_in_ruleMonsterInst514562 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_248_in_ruleMonsterInst514599 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_249_in_ruleMonsterInst514636 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_250_in_ruleMonsterInst514673 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleMonsterInst6_in_entryRuleMonsterInst614722 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleMonsterInst614732 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_251_in_ruleMonsterInst614775 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_252_in_ruleMonsterInst614812 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_74_in_ruleMonsterInst614849 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleSpell_in_entryRuleSpell14898 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleSpell14908 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleSelectSpellById_in_ruleSpell14955 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleSelectSpellByName_in_ruleSpell14982 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleNewSpell_in_ruleSpell15009 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleSelectSpellById_in_entryRuleSelectSpellById15044 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleSelectSpellById15054 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_253_in_ruleSelectSpellById15091 = new BitSet(new long[]{0x0000000000000020L});
    public static final BitSet FOLLOW_RULE_INT_in_ruleSelectSpellById15108 = new BitSet(new long[]{0x004D001000008040L,0x0000000002000000L,0x0000008000000000L,0x8000000000000000L,0x0000000000001FFFL});
    public static final BitSet FOLLOW_RULE_FREE_FORM_COMMENT_in_ruleSelectSpellById15125 = new BitSet(new long[]{0x004D001000008040L,0x0000000002000000L,0x0000008000000000L,0x8000000000000000L,0x0000000000001FFFL});
    public static final BitSet FOLLOW_ruleSpellMods_in_ruleSelectSpellById15147 = new BitSet(new long[]{0x004D001000008000L,0x0000000002000000L,0x0000008000000000L,0x8000000000000000L,0x0000000000001FFFL});
    public static final BitSet FOLLOW_15_in_ruleSelectSpellById15160 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleSelectSpellByName_in_entryRuleSelectSpellByName15196 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleSelectSpellByName15206 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_253_in_ruleSelectSpellByName15243 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_RULE_STRING_in_ruleSelectSpellByName15260 = new BitSet(new long[]{0x004D001000008040L,0x0000000002000000L,0x0000008000000000L,0x8000000000000000L,0x0000000000001FFFL});
    public static final BitSet FOLLOW_RULE_FREE_FORM_COMMENT_in_ruleSelectSpellByName15277 = new BitSet(new long[]{0x004D001000008040L,0x0000000002000000L,0x0000008000000000L,0x8000000000000000L,0x0000000000001FFFL});
    public static final BitSet FOLLOW_ruleSpellMods_in_ruleSelectSpellByName15299 = new BitSet(new long[]{0x004D001000008000L,0x0000000002000000L,0x0000008000000000L,0x8000000000000000L,0x0000000000001FFFL});
    public static final BitSet FOLLOW_15_in_ruleSelectSpellByName15312 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleNewSpell_in_entryRuleNewSpell15348 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleNewSpell15358 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_254_in_ruleNewSpell15395 = new BitSet(new long[]{0x004D001000008040L,0x0000000002000000L,0x0000008000000000L,0x8000000000000000L,0x0000000000001FFFL});
    public static final BitSet FOLLOW_RULE_FREE_FORM_COMMENT_in_ruleNewSpell15407 = new BitSet(new long[]{0x004D001000008040L,0x0000000002000000L,0x0000008000000000L,0x8000000000000000L,0x0000000000001FFFL});
    public static final BitSet FOLLOW_ruleSpellMods_in_ruleNewSpell15429 = new BitSet(new long[]{0x004D001000008000L,0x0000000002000000L,0x0000008000000000L,0x8000000000000000L,0x0000000000001FFFL});
    public static final BitSet FOLLOW_15_in_ruleNewSpell15442 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleSpellMods_in_entryRuleSpellMods15478 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleSpellMods15488 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleSpellPattern1_in_ruleSpellMods15535 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleSpellPattern2_in_ruleSpellMods15562 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleSpellPattern3_in_ruleSpellMods15589 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleSpellPattern4_in_ruleSpellMods15616 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleSpellPattern5_in_ruleSpellMods15643 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleSpellPattern1_in_entryRuleSpellPattern115678 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleSpellPattern115688 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleSpellInst1_in_ruleSpellPattern115735 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_RULE_STRING_in_ruleSpellPattern115751 = new BitSet(new long[]{0x0000000000000042L});
    public static final BitSet FOLLOW_RULE_FREE_FORM_COMMENT_in_ruleSpellPattern115768 = new BitSet(new long[]{0x0000000000000042L});
    public static final BitSet FOLLOW_ruleSpellPattern2_in_entryRuleSpellPattern215805 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleSpellPattern215815 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleSpellInst2_in_ruleSpellPattern215862 = new BitSet(new long[]{0x0000000000000020L});
    public static final BitSet FOLLOW_RULE_INT_in_ruleSpellPattern215878 = new BitSet(new long[]{0x0000000000000042L});
    public static final BitSet FOLLOW_RULE_FREE_FORM_COMMENT_in_ruleSpellPattern215895 = new BitSet(new long[]{0x0000000000000042L});
    public static final BitSet FOLLOW_ruleSpellPattern3_in_entryRuleSpellPattern315932 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleSpellPattern315942 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleSpellInst3_in_ruleSpellPattern315989 = new BitSet(new long[]{0x0000000000000020L});
    public static final BitSet FOLLOW_RULE_INT_in_ruleSpellPattern316005 = new BitSet(new long[]{0x0000000000000020L});
    public static final BitSet FOLLOW_RULE_INT_in_ruleSpellPattern316027 = new BitSet(new long[]{0x0000000000000042L});
    public static final BitSet FOLLOW_RULE_FREE_FORM_COMMENT_in_ruleSpellPattern316044 = new BitSet(new long[]{0x0000000000000042L});
    public static final BitSet FOLLOW_ruleSpellPattern4_in_entryRuleSpellPattern416081 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleSpellPattern416091 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleSpellInst4_in_ruleSpellPattern416138 = new BitSet(new long[]{0x0000000000000042L});
    public static final BitSet FOLLOW_RULE_FREE_FORM_COMMENT_in_ruleSpellPattern416149 = new BitSet(new long[]{0x0000000000000042L});
    public static final BitSet FOLLOW_ruleSpellPattern5_in_entryRuleSpellPattern516186 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleSpellPattern516196 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleSpellInst5_in_ruleSpellPattern516243 = new BitSet(new long[]{0x0000000000000030L});
    public static final BitSet FOLLOW_RULE_STRING_in_ruleSpellPattern516260 = new BitSet(new long[]{0x0000000000000042L});
    public static final BitSet FOLLOW_RULE_INT_in_ruleSpellPattern516288 = new BitSet(new long[]{0x0000000000000042L});
    public static final BitSet FOLLOW_RULE_FREE_FORM_COMMENT_in_ruleSpellPattern516306 = new BitSet(new long[]{0x0000000000000042L});
    public static final BitSet FOLLOW_ruleSpellInst1_in_entryRuleSpellInst116343 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleSpellInst116353 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_36_in_ruleSpellInst116396 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_89_in_ruleSpellInst116433 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleSpellInst2_in_entryRuleSpellInst216482 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleSpellInst216492 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_255_in_ruleSpellInst216535 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_256_in_ruleSpellInst216572 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_51_in_ruleSpellInst216609 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_257_in_ruleSpellInst216646 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_258_in_ruleSpellInst216683 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_259_in_ruleSpellInst216720 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_260_in_ruleSpellInst216757 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_54_in_ruleSpellInst216794 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_261_in_ruleSpellInst216831 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_48_in_ruleSpellInst216868 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_262_in_ruleSpellInst216905 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_50_in_ruleSpellInst216942 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_263_in_ruleSpellInst216979 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_264_in_ruleSpellInst217016 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleSpellInst3_in_entryRuleSpellInst317065 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleSpellInst317075 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_265_in_ruleSpellInst317118 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_266_in_ruleSpellInst317155 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleSpellInst4_in_entryRuleSpellInst417204 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleSpellInst417214 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_167_in_ruleSpellInst417256 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleSpellInst5_in_entryRuleSpellInst517304 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleSpellInst517314 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_267_in_ruleSpellInst517357 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_268_in_ruleSpellInst517394 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleItem_in_entryRuleItem17443 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleItem17453 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleSelectItemById_in_ruleItem17500 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleSelectItemByName_in_ruleItem17527 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleNewItem_in_ruleItem17554 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleSelectItemById_in_entryRuleSelectItemById17589 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleSelectItemById17599 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_269_in_ruleSelectItemById17636 = new BitSet(new long[]{0x0000000000000020L});
    public static final BitSet FOLLOW_RULE_INT_in_ruleSelectItemById17653 = new BitSet(new long[]{0x0000003000008040L,0x0000020002000000L,0x0000000000000000L,0x000000C000000000L,0x00000000000F8000L});
    public static final BitSet FOLLOW_RULE_FREE_FORM_COMMENT_in_ruleSelectItemById17670 = new BitSet(new long[]{0x0000003000008040L,0x0000020002000000L,0x0000000000000000L,0x000000C000000000L,0x00000000000F8000L});
    public static final BitSet FOLLOW_ruleItemMods_in_ruleSelectItemById17692 = new BitSet(new long[]{0x0000003000008000L,0x0000020002000000L,0x0000000000000000L,0x000000C000000000L,0x00000000000F8000L});
    public static final BitSet FOLLOW_15_in_ruleSelectItemById17705 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleSelectItemByName_in_entryRuleSelectItemByName17741 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleSelectItemByName17751 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_269_in_ruleSelectItemByName17788 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_RULE_STRING_in_ruleSelectItemByName17805 = new BitSet(new long[]{0x0000003000008040L,0x0000020002000000L,0x0000000000000000L,0x000000C000000000L,0x00000000000F8000L});
    public static final BitSet FOLLOW_RULE_FREE_FORM_COMMENT_in_ruleSelectItemByName17822 = new BitSet(new long[]{0x0000003000008040L,0x0000020002000000L,0x0000000000000000L,0x000000C000000000L,0x00000000000F8000L});
    public static final BitSet FOLLOW_ruleItemMods_in_ruleSelectItemByName17844 = new BitSet(new long[]{0x0000003000008000L,0x0000020002000000L,0x0000000000000000L,0x000000C000000000L,0x00000000000F8000L});
    public static final BitSet FOLLOW_15_in_ruleSelectItemByName17857 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleNewItem_in_entryRuleNewItem17893 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleNewItem17903 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_270_in_ruleNewItem17940 = new BitSet(new long[]{0x0000003000008040L,0x0000020002000000L,0x0000000000000000L,0x000000C000000000L,0x00000000000F8000L});
    public static final BitSet FOLLOW_RULE_FREE_FORM_COMMENT_in_ruleNewItem17952 = new BitSet(new long[]{0x0000003000008040L,0x0000020002000000L,0x0000000000000000L,0x000000C000000000L,0x00000000000F8000L});
    public static final BitSet FOLLOW_ruleItemMods_in_ruleNewItem17974 = new BitSet(new long[]{0x0000003000008000L,0x0000020002000000L,0x0000000000000000L,0x000000C000000000L,0x00000000000F8000L});
    public static final BitSet FOLLOW_15_in_ruleNewItem17987 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleItemMods_in_entryRuleItemMods18023 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleItemMods18033 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleItemPattern1_in_ruleItemMods18080 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleItemPattern2_in_ruleItemMods18107 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleItemPattern3_in_ruleItemMods18134 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleItemPattern1_in_entryRuleItemPattern118169 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleItemPattern118179 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleItemInst1_in_ruleItemPattern118226 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_RULE_STRING_in_ruleItemPattern118242 = new BitSet(new long[]{0x0000000000000042L});
    public static final BitSet FOLLOW_RULE_FREE_FORM_COMMENT_in_ruleItemPattern118259 = new BitSet(new long[]{0x0000000000000042L});
    public static final BitSet FOLLOW_ruleItemPattern2_in_entryRuleItemPattern218296 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleItemPattern218306 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleItemInst2_in_ruleItemPattern218353 = new BitSet(new long[]{0x0000000000000020L});
    public static final BitSet FOLLOW_RULE_INT_in_ruleItemPattern218369 = new BitSet(new long[]{0x0000000000000042L});
    public static final BitSet FOLLOW_RULE_FREE_FORM_COMMENT_in_ruleItemPattern218386 = new BitSet(new long[]{0x0000000000000042L});
    public static final BitSet FOLLOW_ruleItemPattern3_in_entryRuleItemPattern318423 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleItemPattern318433 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleItemInst3_in_ruleItemPattern318480 = new BitSet(new long[]{0x0000000000000030L});
    public static final BitSet FOLLOW_RULE_STRING_in_ruleItemPattern318497 = new BitSet(new long[]{0x0000000000000042L});
    public static final BitSet FOLLOW_RULE_INT_in_ruleItemPattern318525 = new BitSet(new long[]{0x0000000000000042L});
    public static final BitSet FOLLOW_RULE_FREE_FORM_COMMENT_in_ruleItemPattern318543 = new BitSet(new long[]{0x0000000000000042L});
    public static final BitSet FOLLOW_ruleItemInst1_in_entryRuleItemInst118580 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleItemInst118590 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_36_in_ruleItemInst118633 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_89_in_ruleItemInst118670 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_231_in_ruleItemInst118707 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleItemInst2_in_entryRuleItemInst218756 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleItemInst218766 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_271_in_ruleItemInst218809 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_272_in_ruleItemInst218846 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_273_in_ruleItemInst218883 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_274_in_ruleItemInst218920 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_275_in_ruleItemInst218957 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_37_in_ruleItemInst218994 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleItemInst3_in_entryRuleItemInst319043 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleItemInst319053 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_105_in_ruleItemInst319096 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_230_in_ruleItemInst319133 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleName_in_entryRuleName19182 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleName19192 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleSelectName_in_ruleName19238 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleSelectName_in_entryRuleSelectName19272 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleSelectName19282 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_276_in_ruleSelectName19319 = new BitSet(new long[]{0x0000000000000020L});
    public static final BitSet FOLLOW_RULE_INT_in_ruleSelectName19336 = new BitSet(new long[]{0x0000000000008040L,0x0000000000000000L,0x0000008000000000L,0x0000000000000000L,0x0000000000200000L});
    public static final BitSet FOLLOW_RULE_FREE_FORM_COMMENT_in_ruleSelectName19353 = new BitSet(new long[]{0x0000000000008040L,0x0000000000000000L,0x0000008000000000L,0x0000000000000000L,0x0000000000200000L});
    public static final BitSet FOLLOW_ruleNameMods_in_ruleSelectName19375 = new BitSet(new long[]{0x0000000000008000L,0x0000000000000000L,0x0000008000000000L,0x0000000000000000L,0x0000000000200000L});
    public static final BitSet FOLLOW_15_in_ruleSelectName19388 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleNameMods_in_entryRuleNameMods19424 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleNameMods19434 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleNamePattern1_in_ruleNameMods19481 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleNamePattern2_in_ruleNameMods19508 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleNamePattern1_in_entryRuleNamePattern119543 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleNamePattern119553 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleNameInst1_in_ruleNamePattern119600 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_RULE_STRING_in_ruleNamePattern119616 = new BitSet(new long[]{0x0000000000000042L});
    public static final BitSet FOLLOW_RULE_FREE_FORM_COMMENT_in_ruleNamePattern119633 = new BitSet(new long[]{0x0000000000000042L});
    public static final BitSet FOLLOW_ruleNamePattern2_in_entryRuleNamePattern219670 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleNamePattern219680 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleNameInst2_in_ruleNamePattern219727 = new BitSet(new long[]{0x0000000000000042L});
    public static final BitSet FOLLOW_RULE_FREE_FORM_COMMENT_in_ruleNamePattern219738 = new BitSet(new long[]{0x0000000000000042L});
    public static final BitSet FOLLOW_ruleNameInst1_in_entryRuleNameInst119775 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleNameInst119785 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_277_in_ruleNameInst119827 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleNameInst2_in_entryRuleNameInst219875 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleNameInst219885 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_167_in_ruleNameInst219927 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleSite_in_entryRuleSite19975 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleSite19985 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleSelectSiteById_in_ruleSite20032 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleSelectSiteByName_in_ruleSite20059 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleNewSite_in_ruleSite20086 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleSelectSiteById_in_entryRuleSelectSiteById20121 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleSelectSiteById20131 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_278_in_ruleSelectSiteById20168 = new BitSet(new long[]{0x0000000000000020L});
    public static final BitSet FOLLOW_RULE_INT_in_ruleSelectSiteById20185 = new BitSet(new long[]{0x0000001000008040L,0x0000000000000000L,0x0000008000000000L,0x0000000000008100L,0x0000FFFFFF000200L});
    public static final BitSet FOLLOW_RULE_FREE_FORM_COMMENT_in_ruleSelectSiteById20202 = new BitSet(new long[]{0x0000001000008040L,0x0000000000000000L,0x0000008000000000L,0x0000000000008100L,0x0000FFFFFF000200L});
    public static final BitSet FOLLOW_ruleSiteMods_in_ruleSelectSiteById20224 = new BitSet(new long[]{0x0000001000008000L,0x0000000000000000L,0x0000008000000000L,0x0000000000008100L,0x0000FFFFFF000200L});
    public static final BitSet FOLLOW_15_in_ruleSelectSiteById20237 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleSelectSiteByName_in_entryRuleSelectSiteByName20273 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleSelectSiteByName20283 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_278_in_ruleSelectSiteByName20320 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_RULE_STRING_in_ruleSelectSiteByName20337 = new BitSet(new long[]{0x0000001000008040L,0x0000000000000000L,0x0000008000000000L,0x0000000000008100L,0x0000FFFFFF000200L});
    public static final BitSet FOLLOW_RULE_FREE_FORM_COMMENT_in_ruleSelectSiteByName20354 = new BitSet(new long[]{0x0000001000008040L,0x0000000000000000L,0x0000008000000000L,0x0000000000008100L,0x0000FFFFFF000200L});
    public static final BitSet FOLLOW_ruleSiteMods_in_ruleSelectSiteByName20376 = new BitSet(new long[]{0x0000001000008000L,0x0000000000000000L,0x0000008000000000L,0x0000000000008100L,0x0000FFFFFF000200L});
    public static final BitSet FOLLOW_15_in_ruleSelectSiteByName20389 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleNewSite_in_entryRuleNewSite20425 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleNewSite20435 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_279_in_ruleNewSite20472 = new BitSet(new long[]{0x0000000000000020L});
    public static final BitSet FOLLOW_RULE_INT_in_ruleNewSite20489 = new BitSet(new long[]{0x0000001000008040L,0x0000000000000000L,0x0000008000000000L,0x0000000000008100L,0x0000FFFFFF000200L});
    public static final BitSet FOLLOW_RULE_FREE_FORM_COMMENT_in_ruleNewSite20506 = new BitSet(new long[]{0x0000001000008040L,0x0000000000000000L,0x0000008000000000L,0x0000000000008100L,0x0000FFFFFF000200L});
    public static final BitSet FOLLOW_ruleSiteMods_in_ruleNewSite20528 = new BitSet(new long[]{0x0000001000008000L,0x0000000000000000L,0x0000008000000000L,0x0000000000008100L,0x0000FFFFFF000200L});
    public static final BitSet FOLLOW_15_in_ruleNewSite20541 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleSiteMods_in_entryRuleSiteMods20577 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleSiteMods20587 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleSitePattern1_in_ruleSiteMods20634 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleSitePattern2_in_ruleSiteMods20661 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleSitePattern3_in_ruleSiteMods20688 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleSitePattern4_in_ruleSiteMods20715 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleSitePattern1_in_entryRuleSitePattern120750 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleSitePattern120760 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleSiteInst1_in_ruleSitePattern120807 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_RULE_STRING_in_ruleSitePattern120823 = new BitSet(new long[]{0x0000000000000042L});
    public static final BitSet FOLLOW_RULE_FREE_FORM_COMMENT_in_ruleSitePattern120840 = new BitSet(new long[]{0x0000000000000042L});
    public static final BitSet FOLLOW_ruleSitePattern2_in_entryRuleSitePattern220877 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleSitePattern220887 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleSiteInst2_in_ruleSitePattern220934 = new BitSet(new long[]{0x0000000000000020L});
    public static final BitSet FOLLOW_RULE_INT_in_ruleSitePattern220950 = new BitSet(new long[]{0x0000000000000042L});
    public static final BitSet FOLLOW_RULE_FREE_FORM_COMMENT_in_ruleSitePattern220967 = new BitSet(new long[]{0x0000000000000042L});
    public static final BitSet FOLLOW_ruleSitePattern3_in_entryRuleSitePattern321004 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleSitePattern321014 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleSiteInst3_in_ruleSitePattern321061 = new BitSet(new long[]{0x0000000000000020L});
    public static final BitSet FOLLOW_RULE_INT_in_ruleSitePattern321077 = new BitSet(new long[]{0x0000000000000020L});
    public static final BitSet FOLLOW_RULE_INT_in_ruleSitePattern321099 = new BitSet(new long[]{0x0000000000000042L});
    public static final BitSet FOLLOW_RULE_FREE_FORM_COMMENT_in_ruleSitePattern321116 = new BitSet(new long[]{0x0000000000000042L});
    public static final BitSet FOLLOW_ruleSitePattern4_in_entryRuleSitePattern421153 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleSitePattern421163 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleSiteInst4_in_ruleSitePattern421210 = new BitSet(new long[]{0x0000000000000042L});
    public static final BitSet FOLLOW_RULE_FREE_FORM_COMMENT_in_ruleSitePattern421221 = new BitSet(new long[]{0x0000000000000042L});
    public static final BitSet FOLLOW_ruleSiteInst1_in_entryRuleSiteInst121258 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleSiteInst121268 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_36_in_ruleSiteInst121310 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleSiteInst2_in_entryRuleSiteInst221358 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleSiteInst221368 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_265_in_ruleSiteInst221411 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_280_in_ruleSiteInst221448 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_281_in_ruleSiteInst221485 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_282_in_ruleSiteInst221522 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_283_in_ruleSiteInst221559 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_284_in_ruleSiteInst221596 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_285_in_ruleSiteInst221633 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_286_in_ruleSiteInst221670 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_287_in_ruleSiteInst221707 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_288_in_ruleSiteInst221744 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_289_in_ruleSiteInst221781 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_290_in_ruleSiteInst221818 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_200_in_ruleSiteInst221855 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_291_in_ruleSiteInst221892 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_292_in_ruleSiteInst221929 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_207_in_ruleSiteInst221966 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_293_in_ruleSiteInst222003 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_294_in_ruleSiteInst222040 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_295_in_ruleSiteInst222077 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_296_in_ruleSiteInst222114 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_297_in_ruleSiteInst222151 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_298_in_ruleSiteInst222188 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_299_in_ruleSiteInst222225 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_300_in_ruleSiteInst222262 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_301_in_ruleSiteInst222299 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleSiteInst3_in_entryRuleSiteInst322348 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleSiteInst322358 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_302_in_ruleSiteInst322400 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleSiteInst4_in_entryRuleSiteInst422448 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleSiteInst422458 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_167_in_ruleSiteInst422501 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_303_in_ruleSiteInst422538 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleNation_in_entryRuleNation22587 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleNation22597 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleSelectNation_in_ruleNation22644 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleIndepFlag_in_ruleNation22671 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleSelectNation_in_entryRuleSelectNation22706 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleSelectNation22716 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_304_in_ruleSelectNation22753 = new BitSet(new long[]{0x0000000000000020L});
    public static final BitSet FOLLOW_RULE_INT_in_ruleSelectNation22770 = new BitSet(new long[]{0x0000001000008040L,0x0000000002000000L,0x0000000000000000L,0x0000000000000000L,0xFFFC000000000000L,0x0FFFFFFFFFFFFFFFL});
    public static final BitSet FOLLOW_RULE_FREE_FORM_COMMENT_in_ruleSelectNation22787 = new BitSet(new long[]{0x0000001000008040L,0x0000000002000000L,0x0000000000000000L,0x0000000000000000L,0xFFFC000000000000L,0x0FFFFFFFFFFFFFFFL});
    public static final BitSet FOLLOW_ruleNationMods_in_ruleSelectNation22809 = new BitSet(new long[]{0x0000001000008000L,0x0000000002000000L,0x0000000000000000L,0x0000000000000000L,0xFFFC000000000000L,0x0FFFFFFFFFFFFFFFL});
    public static final BitSet FOLLOW_15_in_ruleSelectNation22822 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleIndepFlag_in_entryRuleIndepFlag22858 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleIndepFlag22868 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_305_in_ruleIndepFlag22905 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_RULE_STRING_in_ruleIndepFlag22922 = new BitSet(new long[]{0x0000000000000042L});
    public static final BitSet FOLLOW_RULE_FREE_FORM_COMMENT_in_ruleIndepFlag22939 = new BitSet(new long[]{0x0000000000000042L});
    public static final BitSet FOLLOW_ruleNationMods_in_entryRuleNationMods22976 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleNationMods22986 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleNationPattern1_in_ruleNationMods23033 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleNationPattern2_in_ruleNationMods23060 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleNationPattern3_in_ruleNationMods23087 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleNationPattern4_in_ruleNationMods23114 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleNationPattern5_in_ruleNationMods23141 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleNationPattern1_in_entryRuleNationPattern123176 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleNationPattern123186 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleNationInst1_in_ruleNationPattern123233 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_RULE_STRING_in_ruleNationPattern123249 = new BitSet(new long[]{0x0000000000000042L});
    public static final BitSet FOLLOW_RULE_FREE_FORM_COMMENT_in_ruleNationPattern123266 = new BitSet(new long[]{0x0000000000000042L});
    public static final BitSet FOLLOW_ruleNationPattern2_in_entryRuleNationPattern223303 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleNationPattern223313 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleNationInst2_in_ruleNationPattern223360 = new BitSet(new long[]{0x0000000000000020L});
    public static final BitSet FOLLOW_RULE_INT_in_ruleNationPattern223376 = new BitSet(new long[]{0x0000000000000042L});
    public static final BitSet FOLLOW_RULE_FREE_FORM_COMMENT_in_ruleNationPattern223393 = new BitSet(new long[]{0x0000000000000042L});
    public static final BitSet FOLLOW_ruleNationPattern3_in_entryRuleNationPattern323430 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleNationPattern323440 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleNationInst3_in_ruleNationPattern323487 = new BitSet(new long[]{0x0000000000000042L});
    public static final BitSet FOLLOW_RULE_FREE_FORM_COMMENT_in_ruleNationPattern323498 = new BitSet(new long[]{0x0000000000000042L});
    public static final BitSet FOLLOW_ruleNationPattern4_in_entryRuleNationPattern423535 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleNationPattern423545 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleNationInst4_in_ruleNationPattern423592 = new BitSet(new long[]{0x0000000000000030L});
    public static final BitSet FOLLOW_RULE_STRING_in_ruleNationPattern423609 = new BitSet(new long[]{0x0000000000000042L});
    public static final BitSet FOLLOW_RULE_INT_in_ruleNationPattern423637 = new BitSet(new long[]{0x0000000000000042L});
    public static final BitSet FOLLOW_RULE_FREE_FORM_COMMENT_in_ruleNationPattern423655 = new BitSet(new long[]{0x0000000000000042L});
    public static final BitSet FOLLOW_ruleNationPattern5_in_entryRuleNationPattern523692 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleNationPattern523702 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleNationInst5_in_ruleNationPattern523749 = new BitSet(new long[]{0x0000000000000020L});
    public static final BitSet FOLLOW_ruleDecimalValue_in_ruleNationPattern523769 = new BitSet(new long[]{0x0000000000000020L});
    public static final BitSet FOLLOW_ruleDecimalValue_in_ruleNationPattern523790 = new BitSet(new long[]{0x0000000000000020L});
    public static final BitSet FOLLOW_ruleDecimalValue_in_ruleNationPattern523811 = new BitSet(new long[]{0x0000000000000042L});
    public static final BitSet FOLLOW_RULE_FREE_FORM_COMMENT_in_ruleNationPattern523823 = new BitSet(new long[]{0x0000000000000042L});
    public static final BitSet FOLLOW_ruleNationInst1_in_entryRuleNationInst123860 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleNationInst123870 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_36_in_ruleNationInst123913 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_306_in_ruleNationInst123950 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_89_in_ruleNationInst123987 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_307_in_ruleNationInst124024 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_308_in_ruleNationInst124061 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_309_in_ruleNationInst124098 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_310_in_ruleNationInst124135 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_311_in_ruleNationInst124172 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleNationInst2_in_entryRuleNationInst224221 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleNationInst224231 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_312_in_ruleNationInst224274 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_313_in_ruleNationInst224311 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_314_in_ruleNationInst224348 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_315_in_ruleNationInst224385 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_316_in_ruleNationInst224422 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_317_in_ruleNationInst224459 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_318_in_ruleNationInst224496 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_319_in_ruleNationInst224533 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_320_in_ruleNationInst224570 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_321_in_ruleNationInst224607 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_322_in_ruleNationInst224644 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_323_in_ruleNationInst224681 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_324_in_ruleNationInst224718 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_325_in_ruleNationInst224755 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_326_in_ruleNationInst224792 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_327_in_ruleNationInst224829 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_328_in_ruleNationInst224866 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_329_in_ruleNationInst224903 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_330_in_ruleNationInst224940 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_331_in_ruleNationInst224977 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_332_in_ruleNationInst225014 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_333_in_ruleNationInst225051 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_334_in_ruleNationInst225088 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_335_in_ruleNationInst225125 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_336_in_ruleNationInst225162 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_337_in_ruleNationInst225199 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_338_in_ruleNationInst225236 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_339_in_ruleNationInst225273 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_340_in_ruleNationInst225310 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_341_in_ruleNationInst225347 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleNationInst3_in_entryRuleNationInst325396 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleNationInst325406 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_342_in_ruleNationInst325449 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_343_in_ruleNationInst325486 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_344_in_ruleNationInst325523 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_345_in_ruleNationInst325560 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_346_in_ruleNationInst325597 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_347_in_ruleNationInst325634 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_348_in_ruleNationInst325671 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_349_in_ruleNationInst325708 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_350_in_ruleNationInst325745 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_351_in_ruleNationInst325782 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_352_in_ruleNationInst325819 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_353_in_ruleNationInst325856 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_354_in_ruleNationInst325893 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_355_in_ruleNationInst325930 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_356_in_ruleNationInst325967 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleNationInst4_in_entryRuleNationInst426016 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleNationInst426026 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_357_in_ruleNationInst426069 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_358_in_ruleNationInst426106 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_359_in_ruleNationInst426143 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_360_in_ruleNationInst426180 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_361_in_ruleNationInst426217 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_362_in_ruleNationInst426254 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_363_in_ruleNationInst426291 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_364_in_ruleNationInst426328 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_365_in_ruleNationInst426365 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_366_in_ruleNationInst426402 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_367_in_ruleNationInst426439 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_368_in_ruleNationInst426476 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_369_in_ruleNationInst426513 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_370_in_ruleNationInst426550 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_371_in_ruleNationInst426587 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_372_in_ruleNationInst426624 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_373_in_ruleNationInst426661 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_374_in_ruleNationInst426698 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_375_in_ruleNationInst426735 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_376_in_ruleNationInst426772 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_377_in_ruleNationInst426809 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_378_in_ruleNationInst426846 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleNationInst5_in_entryRuleNationInst526895 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleNationInst526905 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_379_in_ruleNationInst526947 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleDecimalValue_in_entryRuleDecimalValue26996 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleDecimalValue27007 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_INT_in_ruleDecimalValue27047 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x1000000000000000L});
    public static final BitSet FOLLOW_380_in_ruleDecimalValue27066 = new BitSet(new long[]{0x0000000000000020L});
    public static final BitSet FOLLOW_RULE_INT_in_ruleDecimalValue27081 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x1000000000000000L});

}
